查询操作在数据库的操作中所占的比重非常大,所以查询优化技术非常重要。
要不要建索引,首先要看你的数据量如何,如果数据量不大,就没有必要建立索引了,因为作用不大,还增加了索引的维护工作。
另外所谓根据select语句建立索引,就是对你经常查询的列来建立索引,如果你建立了一个索引,可是在你的select语句中很少用到这个索引,那就没有必要了。
具体方法是看你的select语句中的where子句条件是针对哪个字段的,就对这个字段建立索引。
1. 合理使用索引:
索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。
在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引;
在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引;
如果待排序的列有多个,可以在这些列上建立复合索引(compound index);
在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。
使用系统工具。数据库有一个tbcheck工具,可以在可疑的索引上进行检查。在一些数据库服务器上,索引可能失效或者因为频繁操作而使得读取效率降低,如果一个使用索引的查询不明不白地慢下来,可以试着用tbcheck工具检查索引的完整性,必要时进行修复。另外,