码迷,mamicode.com
首页 > 数据库 > 详细

数据库调优教程(七)索引的代价

时间:2015-04-12 10:41:11      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:mysql   优化   数据库   

三、           索引


4.      索引的代价

前面几讲介绍了索引在提高性能方面的威力以及如何使用索引,但是索引也是有开销的

1)    占用磁盘空间

如前面所述,索引是有开销的,表现在添加索引后.ibd文件(innodb引擎)或者.myi文件(myisam引擎)会变大。

技术分享

2)    导致dml操作速度变慢

添加索引后之所以会快,是因为表依据索引对数据按某种算法(二叉树等)进行排序,所以删除、增加、插入后二叉树要重新排序,导致执行效率降低。

 

此时要看自己的数据库是dml语句执行的多还是dql语句执行的多

使用以下语句可以查询

 

查询一共执行了多少次select

[plain] view plaincopy
  1. show  status like ‘com_select’  

查询一共执行了多少次insert

[plain] view plaincopy
  1. show status like ‘com_insert’  

以此类推

 

一般来说,dql语句操作比dml语句要多得多!接近9:1

 

既然索引有利有弊,那么怎样人为地控制索引的使用呢?

强制不使用索引

[plain] view plaincopy
  1. select xxx from table ignore index(index_xxx)  

强制使用索引

[plain] view plaincopy
  1. select * from table force index(index_xxx)  

数据库调优教程(七)索引的代价

标签:mysql   优化   数据库   

原文地址:http://blog.csdn.net/goluck98/article/details/45007787

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!