摘要:
“ 对于高级开发,我们经常要编写一些复杂的sql,那么防止写出低效sql,我们有必要了解一些索引的基础知识。通过这些基础知识我们可以写出更高效的sql。” 01 索引的优点 大大减少服务器需要扫描的数据量,也就是IO量 帮助服务器避免排序和临时表(尽量避免文件排序,而是使用索引排序) 将随机IO变成 阅读全文
摘要:
索引提高查询效率,就像我们看的书,想要直接翻到某一章,是不是不用一页一页的翻,只需要看下目录,根据目录找到其所在的页数即可。 在计算机中我们需要一种数据结构来存储这个目录,常见数据结构有哈希表,二叉查找树,二叉平衡树(AVL),红黑树,那为什么Innodb和MyISAM选择b+树呢。 哈希表 哈希表 阅读全文
摘要:
explain有何用处呢: 为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。通过查看执行计划了解执行器是否按照我们想的那样处理SQL。 官 阅读全文
摘要:
“ 这篇文章主要为了说明规矩要遵守,但是也别这么死板,要知道因场景不同而变化。了解各自的优缺点,在不同业务中根据需求选择使用。” 我们在项目上进行数据库设计的时候要求遵守三范式,为什么会约束三范式呢:为了减少数据冗余。 回忆下是哪三范式: 所有属性具有原子性,列不可分割。 例如家庭地址(xx省xx市 阅读全文
摘要:
日常工作中我们会接触到不同业务,同样也会设计不同的表,但是你有真正考虑的mysql支持的那些数据类型吗?知道如何根据不同的需求选择最合适或者正确的类型吗。 存储字符串类型只知道选择varchar , 是否知道字符串还有char, text, blob 。 存储数字类型只知道选择 int,float, 阅读全文
摘要:
mysql 版本5.7+ 本片文章详细列举下MyISAM和InnoDB的区别 1. mysql中MyISAM和InnoDB有什么区别 1. 存储结构 MyISAM:每张表被存放在三个文件:frm-表格定义、MYD(MYData)-数据文件、MYI(MYIndex)-索引文件。 Innodb:所有的表 阅读全文
摘要:
本文mysql实验版本 : 5.7.21 基础架构篇了解到执行器执行这个执行计划,通过调用存储引擎的API来操作数据。 mysql提供了一系列存储引擎的API,所有的存储引擎都要符合API要求,因此可以实现这种插件式的存储引擎,可以根据不同的需求选择合适的存储引擎(就像握推杠铃一样,可以按需选择不同 阅读全文
摘要:
如果能够清楚知道的架构图以及各个组件之间的关联,会有助于深入理解mysql,如下是其的架构图 图中可以看出mysql分为service层和存储引擎层: service层包含了mysql大多数核心功能,除了图中标注的连接器,查询缓存,分析器,优化器,执行器,还有所有的内置函数(日期,时间,数学和加密函 阅读全文
摘要:
简单操作就可以使用,方便监控服务运行情况 一. 概述 基于Skywalking,提供分布式服务链路追踪,服务依赖拓扑绘制,慢端点、慢SQL等面板展示能力,以及服务告警能力,同时自带显示面板,可以提供前后端调用链整合能力。支持多种语言:如 Java, C# , Node.js , Go , PHP 以 阅读全文