索引优化时,问题一般集中在以下三种情况:1、没有足够多的索引;2、没有有效的索引;3、索引列的顺序不对。这三种情况也是此系列要讲述的重点。同是提一下一些“误区”,之所以称为误区是因为在没有特定背景的情况下,以下几种经验之谈都不成立。
索引层级不要超过5层:这主要是影响磁盘空间,综合现在的硬件水平来看这个问题可以忽略不计,但在一些纯B端应用,因为受服务器数量的影响还是需要考虑下性能成本问题的;
单表的索引数不要超过6个:这个是数据库软件的限制,在早期oracle数据库上会有此限制,但mysql等就不会存在这个限制。但读者也要清楚的知道,索引数据过多会影响写的性能;
不应该索引不稳定的列:一般认为更新速度为10次/秒的列才称为不稳定列。因为索引行是按索引键的顺序存储的,所以当索引键中有一列被更新时,DBMS可能不得不把相应的行从旧的索引位置移到新的位置来保持这一顺序,所以不稳定的列不建议被索引。在实际开发中,这个问题不可能避免(比如按状态分页查询),但可以把频繁变化的列放在索引最末端来减缓这个问题,这也是后续笔者要着重说明的一块很重要的内容;