MySQL如何使用索引
欢迎进入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]
推荐阅读
-
网页客户端使用php访问mysql数据时出现NetworkError: 500 Intern
-
mysql设置-mysql如何设置当前日期
-
MySQL使用临时表加速查询的方法
-
mysql索引类型normal,unique,full text的区别
-
Bixelangelo如何免费使用 矢量绘图软件Bixelangelo安装及激活图文教程
-
通过虚拟机如何源码安装LNMP开发环境(virtualbox+ubuntu+nginx+mysql+php)???
-
Redis系列-php如何通过redis扩展使用redis
-
如何锁定MYSQL数据表_MySQL
-
Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用_MySQL
-
Docker如何使用link建立容器之间的连接