摘要: 概述: 交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上。 这个SQL查询关联两个数据表,一个是攻击IP用户表主要是记录IP的信息,如第一次攻击时间,地址,IP等等 阅读全文
posted @ 2018-06-05 16:54 热敷哥 阅读(31087) 评论(3) 推荐(2) 编辑
摘要: 对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查 阅读全文
posted @ 2018-06-05 14:28 热敷哥 阅读(25231) 评论(0) 推荐(0) 编辑
摘要: 测试于:MySQL 5.5.25 当前测试的版本是Mysql 5.5.25只有BTree和Hash两种索引类型,默认为BTree。Oracle或其他类型数据库中会有Bitmap索引(位图索引),这里作为比较也一起提供。 BTree索引 BTree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用 阅读全文
posted @ 2018-06-05 14:21 热敷哥 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: OR、in和union all 查询效率到底哪个快。 网上很多的声音都是说union all 快于 or、in,因为or、in会导致全表扫描,他们给出了很多的实例。 但真的union all真的快于or、in?本文就是采用实际的实例来探讨到底是它们之间的效率。 1:创建表,插入数据、数据量为1千万【 阅读全文
posted @ 2018-06-05 13:52 热敷哥 阅读(608) 评论(0) 推荐(0) 编辑
摘要: 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字 阅读全文
posted @ 2018-06-05 10:26 热敷哥 阅读(154) 评论(0) 推荐(0) 编辑