最新消息: 新版网站上线了!!!

mysql优化方法

创建索引语句:
普通索引:
create index 索引名  on 表名(列名1,列名2。。。。)  注:多列,表示组合索引
前缀索引:
create index 索引名 on 表名(列名1 (指定长度),。。。。)

索引的好处:

1、提高查询效率,降低数据检索的效率,降低数据为的IO成本;
2、降低数据的排序成本。

如何判定是否须要创建索引:
1、较频繁的作为查询条件的字段应当作为索引
2、唯一性太差的字段不应单独做为索引,即使频繁作为查询条件。
3、更新非常频繁的字段不适合作为索引
4、不会出现在WHERE子句中的字段不应创建索引

组合索引 和 单键索引 的选择依据:
一般情况下,只要不是其中某个字段在多数查询场景中能过滤90%以上的数据,而其他字段会频繁更新,一般倾向于组合索引,尤其是在并发量较大的情况下。 因为当并发量较高时,即使只为每个查询节省了很少的IO消耗,但因为执行量非常大,所节省的资源总量仍然是非常可观的。
MySQL中索引的限制:
1、MyISAM存储引擎索引键长度的总和不能超过1000p字节;
2、Blob和TEXT的列只能创建前缀索引;
3、MySQL不支持函数索引;
4、使用不等于(!=或<>)时,MySQL索引无法使用;
5、过滤字段使用了函数运算(abc(列名))后,MySQL无法使用索引;
6、JOIN语句中JOIN条件字段类型不一致时,MySQL无法使用索引;
7、使用LIKE操作的时候如:'%abc.....',MySQL无法使用索引;
8、使用非等值查询的时候,MySQL无法使用HASH索引。

事物都都两面性,索引也不例外。最后说下

索引的弊端
1、更新索引带来的IO量和调整索引所致的计算量。除了更新字段外,索引数据也要进行更新。
2、消耗额外的存储空间。随着表数据的增加,列在索引中的存储空间也会增加
.....

转载请注明:谷谷点程序 » mysql优化方法