MySQL性能优化:索引  

  索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。
 
当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
 

优点

1.大大加快数据的检索速度;
2.创建唯一性索引,保证数据库表中每一行数据的唯一性;
3.加速表和表之间的连接;
4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。

缺点

1.索引需要占物理空间。
2.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
 
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTREE索引。  
 
 
索引命名:index_tablename_title (index_表名_字段名)
 
注意:
1:不需要为主键建索引,因为数据默认就带有索引了。
 
 
内容参考:
http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html
http://blog.csdn.net/xluren/article/details/32746183#t0
 
      

最新文章

  1. 高性能的JavaScript--加载和执行
  2. jdbc的实例应用:增删查改实现
  3. iOS常用开发资源整理
  4. codeblocks+Mingw 下配置开源c++单元测试工具 google test
  5. 【Heritrix基础教程之3】Heritrix的基本架构
  6. DeNA/上海纵游通过使用AWS大量缩短新款游戏和服务的上线时间
  7. ModelConvertHelper(将DataTable转换成List<model>)
  8. python学习——DAY1
  9. 【DevExpresss】3、LookUpEdit详解(转载)
  10. AddDigitsTotal - 把数字中单个数相加
  11. javascript计算啤酒2元一瓶,4个盖换一瓶,2个瓶换一瓶,10元钱最多喝多少瓶
  12. 201521123066 《java程序设计》第一周学习总结
  13. android-蓝牙通信
  14. AtCoder Grand Contest 030 (AGC030) C - Coloring Torus 构造
  15. Vue 表格里的下拉列表
  16. 转-编写CGI小结
  17. wagger的展示路径修改
  18. Leading and Trailing (数论)
  19. jQuery插件初级练习1答案
  20. 5、JVM的监控与分析工具

热门文章

  1. Debain下解决sublime无法输入中文
  2. python list dict 去重的两种方式
  3. JS--浏览器兼容之new Date
  4. ImportError: No module named 'requests'
  5. docker学习(3) 容器的启动过程
  6. [LeetCode] Game of Life 生命游戏
  7. [LeetCode] Populating Next Right Pointers in Each Node II 每个节点的右向指针之二
  8. JAVA的正则表达式-学习
  9. 记录rewrite url我之前不知道的地方
  10. AngularJS依赖注入