• 1.3万亿条数据查询如何做到毫秒级响应?
    “ 知乎,在古典中文中意为“你知道吗?”,它是中国的 Quora,一个问答网站,其中各种问题由用户社区创建,回答,编辑和组织。图片来自 Pexels作为中国最大的知识共享平台,我们目前拥有 2.2 亿注册用户,3000 万个问题,网站答案超过 1.3 亿。随着用户群的增长,我们的应用程序的数据大小无法实现。我们的 Moneta 应用程序中存储了大约 1.3 万亿行数据(存储用户已经阅读过的帖子)。由于每月累计产生大约 1000亿行数据且不断增长,这一数字将在两年内达到 3 万亿。在保持良好用户体验的同时,我
  • 误删了数据库,我只能跑路么?
    毫无疑问,MySQL 是当下最流行的开源数据库。更有统计,世界上一流的互联网公司中,排名前20的有80%都是 MySQL 的忠实用户。好在,之前拜师了一位数据库大佬——丁奇。你多多少少听过他的名字,他先后在百度和阿里任职,从事 MySQL 数据库方面的工作。在阿里期间,跟褚霸一起共事,参与了阿里云关系型数据库服务内核的开发,并且负责开发开源分支 AliSQL。当我们碰到MySQL的一些异常或者问题时,就能够直戳本质,更为快速地定位并解决问题。对于想亲自听闻大佬传授经验,学好 MySQL 的同学们,这可能是个极难得的机会。
  • 面试题:为什么 MySQL 索引要使用 B+ 树?
    扫描下方二维码试读InnoDB的一棵B+树可以存放多少行数据?答案:约2千万为什么是这么多?这样的数据组织形式,我们称为索引组织表。如:select * from user where id=5;这里id是主键,通过这棵B+树来查找,首先找到根页,你怎么知道user表的根页在哪呢?怎么得到InnoDB主键索引B+树的高度?在InnoDB的表空间文件中,约定page number为3的代表主键索引的根页,而在根页偏移量为64的地方存放了该B+树的page level。关于二级索引与主键索引的区别请参考MySQL相关书籍,本文不在此介绍。面试题有一道MySQL的面试题,为什么MySQL的索引要使用B+树而不是其它树形结构?
  • 日均 5 亿查询量的京东订单中心,为什么舍 MySQL 用 ES ?
    显然任何影响到订单查询稳定性的情况都是无法容忍的,所以针对于这个情况,先是对订单中心ES所在的弹性云,迁出那些系统资源抢占很高的集群节点,ES集群状况稍有好转。所以在这种情况下,为了让ES单个节点能够使用最大程度的机器资源,采用每个ES节点部署在单独一台物理机上方式。同时由于大部分ES查询的流量都来源于近几天的订单,且订单中心数据库数据已有一套归档机制,将指定天数之前已经关闭的订单转移到历史订单库。在此,订单中心主从集群完成,ES查询服务稳定性大大提升。
  • DBA防跑路,是不是备份最重要? | 数据库系列
    数据安全性,是DBA最重要的职责,没有之一,今天系统性的说一下MySQL的备份。备份的可移植性往往比较差,数据恢复时,必须是几乎相同的硬件体系结构;画外音:windows下物理备份,不能直接应用恢复到Linux下的MySQL。逻辑备份有什么特点?远程备份,是指备份动作实施在另一台主机上。全量备份,是指备份截止到某一个时间点的全部数据。全量备份方法很多,上文所说的各种方案,全部是全量备份方案。作为DBA和OP,数据安全性是第一要务,全量备份和增量备份都是必须的!
  • 万亿条数据查询如何做到毫秒级响应?
    点击上方“朱小厮的博客”,选择“设为星标”回复”666“获取公众号专属资料知乎,在古典中文中意为“你知道吗?”,它是中国的 Quora,一个问答网站,其中各种问题由用户社区创建,回答,编辑和组织。作为中国最大的知识共享平台,我们目前拥有 2.2 亿注册用户,3000 万个问题,网站答案超过 1.3 亿。随着用户群的增长,我们的应用程序的数据大小无法实现。我们的 Moneta 应用程序中存储了大约 1.3 万亿行数据(存储用户已经阅读过的帖子)。由于每月累计产生大约 1000亿行数据且不断增长,这一数字将在两
  • 日均 5 亿查询量的京东订单中心,为什么舍 MySQL 用 ES ?
    显然任何影响到订单查询稳定性的情况都是无法容忍的,所以针对于这个情况,先是对订单中心ES所在的弹性云,迁出那些系统资源抢占很高的集群节点,ES集群状况稍有好转。同时由于大部分ES查询的流量都来源于近几天的订单,且订单中心数据库数据已有一套归档机制,将指定天数之前已经关闭的订单转移到历史订单库。至此,订单中心主从集群完成,ES查询服务稳定性大大提升。ES 订单数据的同步方案MySQL数据同步到ES中,大致总结可以分为两种方案:方案1:监听MySQL的Binlog,分析Binlog将数据同步到ES集群中。
  • 利用SonarQube实现代码静态扫描
    SonarQube是一个用于管理代码质量的开源平台。SonarQube目前已支持超过20种主流编程语言,它管理的代码质量主要涉及7个维度:架构与设计、重复、单元测试、复杂度、潜在的bug、代码标准、注释。本文,笔者将围绕搭建SonarQube这样的代码质量管理平台这个主题展开,结合java代码实例一步步讲述具体的过程,其中涉及Sonar的下载安装、创建对应Mysql数据库以及运行和管理,并对实践过程中出现的一些问题进行了分析和解决。所以需要将SonarQube降到5.4,当然也可以升级MySQL,笔者选择了前者。
  • asp.net core 使用Mysql和Dapper
    好了,废话太多了,我们开始来讲一讲如何在core上使用mysql。Dapper是一款轻量级ORM工具为什么选择Dapper轻量。Dapper的速度接近与IDataReader,比DataTable好很多支持多种数据库,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server可以映射一对一,一对多,多对多等多种关系。在我们上面代码基础上,引入Dapper后,你会发现变得不一样了这里我们先加一个实体如下所示:MySqlConnection被扩展了更多的方法,这些都是Dapper所带来的如果你想用参数,也很简单,如下所示:在这里我就不讲很复杂的东西,只是简单的引导你们怎么使用mysql和Dapper,希望大家多敲一敲代码,里面还有更多东西等你们探索。
  • 【吐血整理】那些让你起飞的计算机基础知识:学什么,怎么学?
    也有读者经常问的计算机基础知识究竟是指啥?不过我这里只讲 MySQL的学习,别问为什么,问就是我逃了二十分之十九的课。好了,不吹了,说这些也是强大 MySQL 的重要性。对于 MySQL,需要学的还挺多的,例如,1、一条 sql 语句是如何执行的?这里我必须推荐下极客时间的一个专栏:《MySQL实战45讲》,讲的非常好,看完应付面试,我觉得够了,我每次面试 MySQL 几乎都加分,离不开这个专栏。
  • 面试官问:如何优化 MySQL 大分页查询?
    本文讲讲个人的优化分页查询的经验,抛砖引玉。分析在讲如何优化之前我们先来看看一个比较常见错误的写法SELECT * FROM tablewhere kid=1342 and type=1 order id asc limit 149420 ,20;该SQL是一个非常典型的排序+分页查询:order by col limit N,MMySQL 执行此类SQL时需要先扫描到N行,然后再去取M行。对于此类操作,获取前面少数几行数据会很快,但是随着扫描的记录数越多,SQL的性能就会越差,因为N的值越大,MySQL需要扫描越多的数据来定位到具体的N行,这样耗费大量的 IO 成本和时间成本。符合kid=3 and type=1 的记录有很多行,我们取第 9,10行。select * from t where kid =3 and type=1 order by id desc 8,2;MySQL 是如何执行上面的sql 的?
  • MySQL永远绕不开,但凡搞技术?
    毫无疑问,MySQL 是当下最流行的开源数据库。画外音:世界上一流的互联网公司中,排名前20的有80%都是 MySQL 的忠实用户。下面这张是丁奇整理的 MySQL 基础架构示意图。对于想学好 MySQL 的同学们,这可能是个极难得的机会。最后,再强调一遍,今天我开的超级折扣团《MySQL实战45讲》仅需79元,立省20元,仅限100人,24小时。专栏已有近4w人加入学习,想汲取行业大佬十年心法、认真学好MySQL的同学,请抓紧搭上这趟末班车。
  • MySQL 插入 100w 条数据,怎么用时最短?
    MySQL插入数据在写阶段是独占的,但是插入一条数据仍然需要解析、计算、最后才进行写处理,比如要给每一条记录分配自增id,校验主键唯一键属性,或者其他一些逻辑处理,都是需要计算的,所以说多线程能够提高效率。预处理SQL普通SQL,即使用Statement接口执行SQL预处理SQL,即使用PreparedStatement接口执行SQL使用PreparedStatement接口允许数据库预编译SQL语句,以后只需传入参数,避免了数据库每次都编译SQL语句,因此性能更好。///<summary>///执行多条SQL语句,实现数据库事务。
  • 一份完整的 MySQL 开发规范,进大厂必看!
    显示数据时,使用inet_ntoa把整型的ip地址转为地址显示即可。如果一定要使用,建议把BLOB或是TEXT列分离到单独的扩展表中,查询时一定不要使用select * 而只需要取出必要的列,不需要TEXT列的数据时不要对该列进行查询。TEXT或BLOB类型只能使用前缀索引因为MySQL对索引字段长度是有限制的,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值的。TIMESTAMP 占用4字节和INT相同,但比INT可读性高超出TIMESTAMP取值范围的使用DATETIME类型存储。
  • 亿级数据从 MySQL 到 Hbase 的三种同步方案与实践
    本节亿级数据从 MySQL 到 Hbase 的三种同步方案与实践将主要围绕下面架构图中的三种方法进行实践与讲解。除此之外,也可以不用卸载OpenJDK,将Oracle JAVA设为默认的即可。sudo chmod 755 $HOMEsudo chmod 600 id_rsasudo chmod 600 id_rsa.pubsudo chmod 644 authorized_keys2.2.2 伪分布式下载及安装在下列镜像中下载Hadoop版本,我下载的3.0.2。编辑etc/hadoop/hdfs-site.xml,configuration配置为<configuration> <property> <name>dfs.replication</name> <value>1</value> </property></configuration>初始化格式化HDFSbin/hdfs namenode -format注意:格式化执行一次即可!
  • 开发人员不得不知的MySQL索引和查询优化
    在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。MySQL 8.0 开始支持函数索引,5.7 可以通过虚拟列的方式来支持,之前只能新建一个 ROUND 列然后去维护。需要了解 MySQL 的架构图分为 Server 和存储引擎层。MySQL 中无法利用索引完成的排序操作称为“文件排序”,其实不一定是文件排序,内部使用的是快排。using temporary:使用了临时表保存中间结果,MySQL 在对查询结果排序时使用临时表。常见于排序 order by 和分组查询 group by。如果将主键置于 where 列表中,MySQL 就能将该查询转换为一个常量。
  • 事务已提交,数据却丢了,赶紧检查下这个配置!!! | 数据库系列
    事务提交后,必须将事务对数据页的修改刷到磁盘上,才能保证事务的ACID特性。这个刷盘,是一个随机写,随机写性能较低,如果每次事务提交都刷盘,会极大影响数据库的性能。首先,事务提交的时候,会写入Log Buffer,这里调用的是MySQL自己的函数WriteRedoLog;接着,只有当MySQL发起系统调用写文件write时,Log Buffer里的数据,才会写到OS cache。讲了这么多,回到水友的提问上来,数据库崩溃,重启后丢失了数据,有很大的可能,是将innodb_flush_log_at_trx_commit参数设置为0了,这位水友最好和DBA一起检查一下InnoDB的配置。
  • 盘点几种MySQL复制的解决方案和常见的错误理解
    作者 | 阿飞的博客来源 |公众号「阿飞的博客」本文将回顾MySQL复制概念和MySQL几种复制方案,同时也会澄清一些关于复制问题的误解。下图是MySQL复制示意图:MySQL有哪些复制方案?当改变发生时,master需要等待slave已经将日志保存到relay-log中并向master回复确认master才能提交事务。这个解决方案把重心放在一致性上,并且通过使用一个认证过程来保证事务避免冲突和执行的正确性。Percona XtraDB Cluster 有很多组件:Percona Server for MySQL;Percona XtraBackup ;wsrep patches / Galera Library;该解决方案几乎是同步的,可与组复制相媲美。因为它们是两种不同复制方案的实现原理。
  • 图解 MySQL 索引:B-树、B+树 【建议收藏】
    本文中有关存储引擎请查看MySQL存储引擎-InnoDB和MyISAM索引是什么?索引是帮助MySQL高效获取数据的数据结构。具体细节取决于不同的实现,InnoDB的聚簇索引其实就是在同一个结构中保存了B-Tree索引和数据行。imgB-Tree索引B-Tree能加快数据的访问速度,因为存储引擎不再需要进行全表扫描来获取数据,数据分布在各个节点之中。imgB+Tree索引是B-Tree的改进版本,同时也是数据库索引索引所采用的存储结构。相比B-Tree来说,进行范围查找时只需要查找两个节点,进行遍历即可。Redis使用不当真的可能会导致应用卡死2.面试问烂的 Spring AOP 原理、SpringMVC 过程3.SpringBoot 注解大全,收藏一波!!!
活跃用户
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
分享java开发中常用的技术,分享软件开发中各种新技术的应用方法。每天推送java技术相关或者互联网相关文章。关注“java那些事”,让自己做一个潮流的java技术人!《java程序员由笨鸟到菜鸟》系列文章火热更新中。
有完整的Java初级,高级对应的学习路线和资料,会不定期组织学习交流活动,让大家的学习更有气氛!
阿里巴巴官方技术号,关于阿里的技术创新均呈现于此。
Linux,C语言,C++,数据结构与算法,计算机基础,数据库,工具,资源【原创】分享,力求【知其然,更知其所以然】。高质量学习资源免费获取。
良许,自学转行IT,现为世界500强Linux开发工程师。公众号分享大量Linux干货,以及git、数据库、树莓派等方面技术知识。期待您的关注,一起学习进步!(后台回复 1024 免费赠送资源)
为程序员(码农)提供最新最全的编程技术文章,分享程序员的有趣故事。提供全面的前端、php、java、android、ios、.net学习教程
软硬兼施,娱乐共享
最懂你的程序员在这里,我们不仅聊技术,我们还聊情感,聊人生。
以 Android 为根基,紧跟 Google 脚步,拥抱国内 Android 技术发展趋势。
最有价值的架构师圈子和社区,我们分享各种互联网架构技术干货,探讨架构设计和实战经验,不定期送书、分享学习资料与面试题等。关注学习,早日成为架构师。
分享黑客技术和网络安全知识,让程序员了解黑客世界,学习黑客技术;普及上网和网络安全知识;帮助黑客、安全从业者、安全爱好者学习与成长。
一站式Java全栈技术学习平台!
《前端剑解》 —— 是由海之林技术团队维护的前端公众号,关注前端技能的发展;【前端面试每日3+1】 —— 365天,每天早上5点发布面试题(html, css, js, 软技能),以面试题来驱动学习,提倡每日学习与思考,每天进步一点!
程序猿DD的技术学习与思考
数字公民的糖
开发者社区:打造全网最全的开发者聚集地,分享全栈开发的技术文章、工具资源、精选课程、视频资源、学习资料和人生职场成长感悟。
从TOPYS APP每日打捞精彩文章,以全球最新鲜最棒的创意商业资讯,扩充你的灵感库。
人工智能已经在迅速的改变我们的世界,当它与脑科学结合,这种改变将最终达到人本身。混沌巡洋舰站立在这两个未来的塑造者之间, 讨论这场正在发生的变革对每个行业和个体的影响。我已委托“维权骑士”为我的文章进行维权行动。
计算机网络学习从入门到精通