?居然要MySQL不用索引?(mysql用不到索引)
随着MySQL的不断普及,MySQL索引作为MySQL性能优化中不可或缺的一部分,已成为越来越多程序员及系统管理员从事MySQL开发及管理时不可或缺的一部分。但是,随着MySQL越来越复杂关系的存在,有一些应用情况下即使添加索引也无法有效提高MySQL的性能,于是,人们开始思考MySQL为什么不能使用索引?
MySQL索引的使用主要有两个目的,一是提高SQL查询效率;二是提高数据库记录的可重用性。从这两个目的来看,MySQL索引的使用并不是毫无选择余地的,MySQL索引在一定程度上反而会降低性能。一般来说,当查询相关数据小于等于10%时,MySQL索引可以起到很好的提速效果,但是当查询相关数据大于10%时,添加索引将会带来额外的开销,而且带来的提速并不明显,甚至会带来反效果。
要想判断是否需要使用MySQL索引,可以通过EXPLAIN指令对SQL查询状态进行分析。不少专业应用开发团队,通常把EXPLAIN指令作为工作进程中MySQL性能最重要的环节之一,用来判断某个SQL查询是否真的需要为其创建索引。
举例,假设我们有一个名为employee的表,它包含employeeid、lastname、firstname、hiredate几个字段,如果要使用索引来优化这个表,可以向MySQL发出以下指令:
CREATE INDEX last_name_idx ON emplayee (lastname);
使用EXPLAIN指令可以查看某个或某几个索引的使用情况:
EXPLAIN SELECT * FROM employee WHERE lastname = Smith
EXPLAIN的输出结果中会显示索引名,即last_name_idx,而且column命中率也接近100%,因为输入的SQL查询中指定了lastname字段,利用这个索引时MySQL可以读取大量数据,因此能够有效减少查询时间,从而提高性能。
MySQL为什么不能使用索引?可以看到,是因为它使用的不正确,并不是因为MySQL的本身的原因,正确的使用MySQL索引,可以有效提高MySQL的性能。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 ?居然要MySQL不用索引?(mysql用不到索引)
相关文章
- mysql前缀索引使用,Mysql:前缀索引与索引[通俗易懂]
- 【说站】mysql中BTree索引的理解
- Mysql分段查询:让你的查询更加快捷!(mysql分段查询)
- MySQL中文字段使用指南(mysql字段为中文)
- MySQL 构建二维数组的方法(mysql二维数组)
- MySQL培训:专业的机构及其优秀服务(mysql培训的机构)
- MySQL中快速导出大数据的方法(mysql大数据导出)
- 实战MySQL数据库:构建高效索引(mysql数据库索引实例)
- 给MySQL表增加索引:让查询更高效(mysql创建表索引)
- MySQL数据库中的锁机制(mysql锁机制)
- MySQL如何给表加上有效的索引(mysql给表加索引)
- MySQL索引:深入体会(mysql索引的理解)
- Flask轻松实现MySQL数据调用(flask调用mysql)
- MySQL索引优化:为视图创建索引(mysql给视图创建索引)
- 手把手教你 MySQL 表数据清空的方法(mysql如何清空表)
- MySQL事务类型解析:ACID、BASE和分布式事务(mysql事务类型)
- MySQL如何避免表锁问题?(mysql会锁表)
- MySQL中利用时间索引提高数据查询效率(mysql 时间索引)
- 开启MySQL:认识MySQL服务器启动命令(开启mysql服务命令)
- Mysql建表失败:排查解决之路(mysql建表失败)
- 教你如何在 MySQL 中修改表的主键(mysql中修改表的主键)
- 利用IF判断实现MySQL数据查询与处理(mysql中使用if判断)
- MySQL主键是索引还是不是(mysql中主键是索引吗)
- Mysql查询优化小技巧避免or查询不走索引(mysql中or不走索引)
- CDC构建MySQL数据库的不可或缺步骤(cdc数据库mysql)
- 轻松安装MySQL利用CMD一步到位(cmd安装mysql包)
- MySQL集群三台部署方案(mysql三台部署)
- MySQL下载及安装教程快速掌握MySql下载及安装方法,更高效地使用MySql数据库(mysql下载了在哪)
- 解决MySQL取不到数据的问题(mysql 不能取得数据)
- MySQL免密码登录的方法详解(mysql不用密码也能进)
- 解决方法MySQL初始密码缺失怎么办(mysql不显示初始密码)