索引-mysql
索引使用的注意事项(策略及优化) 并不是建立索引就能显著提高查询速度,在索引的使用过程中,存在一些使用细节和注意事项,因为稍不留心,就可能导致在查询过程中索引失效。 一下列举一些需要注意的事项: 1. 不要在列上使用函数 不要在列上使用函数,这将导致索引失效而进行全表扫描。 如: 1 select * from news where year(publish_time) < 2018 应改为: 1 select * from news where publish_time < '2018-01-01' 2. 不要在列上进行计算 不要在列上进行运算,这也将导致索引失效而进行全表扫描。 如: 1 select * from news where id / 100 = 1 应改为: 1 select * from news where id = 1 * 100 3. 尽量避免使用 != 或 not in或 <> 等否定操作符 应该尽量避免在 where 子句中使用 != 或 not in 或 <>操作符, 这些负向查询也会导致索引失效而进行全表扫描。 如: 1 select name from user where id not in (1,3,4); 应改为: 1 select name from user where id in (2,5,6); 4. 尽量避免使用 or 来连接条件