几种特殊情况(使用带索引的字段查询时,索引不起作用)
使用Like关键字,如果匹配字符串的第一个字符为"%",索引不会起作用,如果第一个关键字不是 "%",那么索引会起作用....MySQL可以为多个字段创建索引,一个索引可以包括16个字段,只有查询条件中使用这些字段中的第一个字段时,索引才会被使用.
查询关键字只有 OR ,且OR左右两边的列都是索引时,索引才起作用....,可能一次锁住很多数据,占满整个事务日志,耗尽系统资源,阻塞很多小的但重要的查询.
2.分解大连接查询
将一个大连接查询分解成对每一个表进行一次单表查询,然后在应用程序中进行关联....分解成单表查询,这些单表查询的缓存结果更可能被其他查询使用到,从而减少冗余记录的查询.
减少锁竞争.
在应用层进行连接,可以更容易的对数据库进行拆分,从而更容易做到高性能和可伸缩....当一个表的数据量很大时,会由于使用频率低的字段的存在而变慢.
2.增加中间表
对于经常需要联合查询的表,可以建立中间表以提高查询效率.
3.优化插入记录的速度
插入记录时,影响插入速度的主要是索引,唯一性校验