欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL如何使用索引

程序员文章站 2022-05-25 14:59:01
...

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 四、使用索引 到此你应该会建立、使用索引了吧?但什么情况下需要建立索引呢?一般来说,在 WHERE 和 JOIN 中出现的列需要建立索引,但也不完全如此,因为 MySQL 只对 ,=,=,,=,BETWEEN,IN,以及某些时

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  四、使用索引

  到此你应该会建立、使用索引了吧?但什么情况下需要建立索引呢?一般来说,在 WHERE 和 JOIN 中出现的列需要建立索引,但也不完全如此,因为 MySQL 只对 ,>=,BETWEEN,IN,以及某些时候的LIKE(后面有说明)才会使用索引。

  SELECT t.vc_Name FROM testIndex t LEFT JOIN myIndex m ONt.vc_Name=m.vc_Name WHERE m.i_Age=20 AND m.vc_City='郑州'时,有对 myIndex 表的 vc_City 和 i_Age 建立索引的需要,由于testIndex 表的 vc_Name 开出现在了 JOIN 子句中,也有对它建立索引的必要。

  刚才提到了,只有某些时候的 LIKE 才需建立索引?是的。因为在以通配符 % 和 _ 开头作查询时,MySQL 不会使用索引,如 SELECT * FROM myIndex WHERE vc_Name like'erquan%'

  会使用索引,而 SELECT * FROM myIndex WHEREt vc_Namelike'%erquan' 就不会使用索引了。

  五、索引的不足之处

  上面说了那么多索引的好话,它真的有像传说中那么优秀么?当然会有缺点了。

  1、虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 INSERT、UPDATE 和DELETE.因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件。

  2、建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

  讲了这么多,无非是想利用索引提高数据库的执行效率。不过索引只是提高效率的一个因素。如果你的MySQL 有大数据的表,就需要花时间研究建立最优秀的索引或优化查询语句。

[1] [2]

MySQL如何使用索引