[全]SQL优化方法技巧实例大全
49页1、SQL优化方法技巧实例大全1、MySQL的基本架构1)MySQL的基础架构图左边的client可以看成是客户端,客户端有很多,像我们经常你使用的CMD黑窗口,像我们经常用于学习的WorkBench,像企业经常使用的Navicat工具,它们都是一个客户端。右边的这一大堆都可以看成是Server(MySQL的服务端),我们将Server在细分为sql层和存储引擎层。当查询出数据以后,会返回给执行器。执行器一方面将结果写到查询缓存里面,当你下次再次查询的时候,就可以直接从查询缓存中获取到数据了。另一方面,直接将结果响应回客户端。2)查询数据库的引擎 show engines; show variables like “%storage_engine%”;3)指定数据库对象的存储引擎createtabletb(idint(4)auto_increment,namevarchar(5),deptvarchar(5),primarykey(id)engine=myISAMauto_increment=1defaultcharset=utf8;SQL优化1)为什么需要进行SQL优化?在进行多表连接查
2、询、子查询等操作的时候,由于你写出的SQL语句欠佳,导致的服务器执行时间太长,我们等待结果的时间太长。基于此,我们需要学习怎么优化SQL。2)mysql的编写过程和解析过程 编写过程selectdinstinct.from.join.on.where.groupby.having.orderby.limit. 解析过程from.on.join.where.groupby.having.selectdinstinct.orderby.limit.提供一个网站,详细说明了mysql解析过程:https:/ 什么是索引?索引就是帮助MySQL高效获取数据的一种【数据结构】。索引是一种树结构,MySQL中一般用的是【B+树】。 索引图示说明(这里用二叉树来帮助我们理解索引)树形结构的特点是:子元素比父元素小的,放在左侧;子元素比父元素大的,放在右侧。这个图示只是为了帮我们简单理解索引的,真实的关于【B+树】的说明,我们会在下面进行说明。索引是怎么查找数据的呢?两个字【指向】,上图中我们给age列指定了一个索引,即类似于右侧的这种树形结构。mysql表中的每一行记录都有一个硬件地址,例如索引中的
3、age=50,指向的就是源表中该行的标识符(“硬件地址”)。也就是说,树形索引建立了与源表中每行记录硬件地址的映射关系,当你指定了某个索引,这种映射关系也就建成了,这就是为什么我们可以通过索引快速定位源表中记录的原因。以【select * from student where age=33】查询语句为例。当我们不加索引的时候,会从上到下扫描源表,当扫描到第5行的时候,找到了我们想要找到了元素,一共是查询了5次。当添加了索引以后,就直接在树形结构中进行查找,33比50小,就从左侧查询到了23,33大于23,就又查询到了右侧,这下找到了33,整个索引结束,一共进行了3次查找。是不是很方便,假如我们此时需要查找age=62,你再想想“添加索引”前后,查找次数的变化情况。4)索引的弊端1.当数据量很大的时候,索引也会很大(当然相比于源表来说,还是相当小的),也需要存放在内存/硬盘中(通常存放在硬盘中),占据一定的内存空间/物理空间。2.索引并不适用于所有情况:a.少量数据;b.频繁进行改动的字段,不适合做索引;c.很少使用的字段,不需要加索引;3.索引会提高数据查询效率,但是会降低“增、删、改
4、”的效率。当不使用索引的时候,我们进行数据的增删改,只需要操作源表即可,但是当我们添加索引后,不仅需要修改源表,也需要再次修改索引,很麻烦。尽管是这样,添加索引还是很划算的,因为我们大多数使用的就是查询,“查询”对于程序的性能影响是很大的。5)索引的优势1.提高查询效率(降低了IO使用率)。当创建了索引后,查询次数减少了。2.降低CPU使用率。比如说【order by age desc】这样一个操作,当不加索引,会把源表加载到内存中做一个排序操作,极大的消耗了资源。但是使用了索引以后,第一索引本身就小一些,第二索引本身就是排好序的,左边数据最小,右边数据最大。6)B+树图示说明MySQL中索引使用的就是B+树结构。关于B+树的说明:首先,Btree一般指的都是【B+树】,数据全部存放在叶子节点中。对于上图来说,最下面的第3层,属于叶子节点,真实数据部份都是存放在叶子节点当中的。那么对于第1、2层中的数据又是干嘛的呢?答:用于分割指针块儿的,比如说小于26的找P1,介于26-30之间的找P2,大于30的找P3。其次,三层【B+树】可以存放上百万条数据。这么多数据怎么放的呢?增加“节点数”
《[全]SQL优化方法技巧实例大全》由会员赵****分享,可在线阅读,更多相关《[全]SQL优化方法技巧实例大全》请在金锄头文库上搜索。
2024二建市政在线考核题库含答案全套
2024年5月河北考面试题及参考答案全套
2024年5月6日下午河北省考面试题及参考答案全套
2024年5月河北邯郸选调生面试题及参考答案全套
2024年5月青海省选调生面试题及参考答案全套
2024年4月山东省青岛市事业单位面试题及参考答案全套
2024年5月海南省考公务员面试题及参考答案全套
2024年建筑升降机考前押题卷含答案全套
数学知识 一次函数4类常见易错题专项训练全套
2024版海南建筑安全生产管理三类人员考试考前押题全套
2024年浙江省工程监理在线测试模拟题库全套
2024年中级注册安全工程师考试之近年真题、参考答案、详细解释全套
2024年陕西三类人员c类题库全套
冲刺2024中级注安师考试之历年真题、真题改编、参考答案全套
高考语文 古诗鉴赏语言风格题型专练全套
2024年中级安全工程师考试之历年真题及真题改编 附参考答案全套
综合布线系统施工方案 含测试 检测及验收全套
工贸企业职业病危害告知书全套
2024 建筑安全员 C 证考试题库答案全套
2024版福建省福州建筑行业安全员B证在线测试电子题库全套
2023-09-25 37页
2023-09-25 10页
2023-09-25 33页
2023-09-25 26页
2023-04-03 8页
2023-04-03 4页
2023-04-03 8页
2023-03-29 10页
2023-03-22 10页
2023-03-20 8页