关于索引设计的一些误区:
误区一:索引设计层级不要超过五层
这是因为以前的索引设计的建议是基于内存比较小,一般只有根页会存在内存中的,现在的处理器已经大大优化了,可以假设所有的非叶子页都留在数据库缓冲池中,每个索引层级也将向索引扫描过程贡献50微秒的处理时间,如果非叶子页在不在数据库缓冲池而在磁盘缓冲中,那么读取的时间也不会超过1ms(毫秒)的,所以可以完全可以超过。
误区二、单表的索引数不超过六个
误区三、不应该索引不稳定的列
在当前的磁盘条件下,更新一个不稳定的列,只会对该更新操作增加10ms的响应时间。
误区四、磁盘驱动器使用率
磁盘驱动器的负载以及增删改的性能需求决定了表上索引数目的上限,但是一般来说,只有更新频率多余10次/秒的情况,不稳定列才会可能成为问题。
系统化设计索引的两个过程(重点):
1.首先找到当前索引下运行得非常慢或将会运行得非常慢的查询,至少找到在最差输入条件下运行的非常慢的查询。
2.然后设计索引以使缓慢的查询变得足够快,并不导致其他SQL调用明显变慢。
网友评论