文章目录1、长字段sql优化1 .添加新字段作为长字段混列,用` CRC32 () )解决问题。 2 .前缀索引(长字段调谐) 2、单列索引vs组合索引3、覆盖索引4、重复索引1 .重复索引2 .冗馀索引3 .未使用索引
另一方面,针对长字段的sql优化1 .将新字段添加为长字段的混列(CRC32 ) )来解决问题。
为什么要带走and first_name=“Facello”? 这确保了hash碰撞时也能正确返回结果。
2 .前缀索引(长字段优化) ) )。
上图显示只对first_name的前五个字符进行了索引。
二、单列索引vs组合索引在下图的form_date和to_date中建立单列索引
可见,type为index_merge,为索引整合而产生了68ms
在sql中创建组合索引时,将显示type=ref,它比单列索引性能更好,需要62ms
合并索引时,请注意最左边的前缀匹配原则
三、索引覆盖是一种简单有效的索引覆盖方式,选择后的字段是索引字段,不需要检索到表数据中。 这样的索引称为覆盖索引。
可以直接从好处索引获取所需数据。 不需要在表数据中读取行。 对于主键索引,必须在表中获得。 对于主键以外的索引,必须获取主键并从表中检索主键。
四.重复索引1 .重复索引在同一列中按相同顺序创建的索引。
以下是错误的方法:
改善方案
应该尽量避免重复索引,发现重复索引时应该删除。
2 .冗馀索引
必须避免冗馀索引,但有特例! 必须防止掉进坑里。
索引(from_date,to_date )在某种意义上相当于使用了index ) from_date,to_date,主键),根据最左匹配原则,主键没有使用索引
3 .没有使用索引的某个索引没有使用,应该删除。