糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。

如同其它学科,优化查询性能很大程度上决定于开发者的直觉。幸运的是,像MySQL这样的数据库自带有一些协助工具。本文简要讨论诸多工具之三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。

MySQL允许对数据库表进行索引,以此能迅速查找记录,而无需一开始就扫描整个表,由此显著地加快查询速度。每个表最多可以做到16个索引,此外MySQL还支持多列索引及全文检索。

给表添加一个索引非常简单,只需调用一个CREATE INDEX命令并为索引指定它的域即可。

列表A给出了一个例子:

复制代码 代码如下:

mysql> CREATE INDEX idx_username ON users(username);

这里,对users表的username域做索引,以确保在WHERE或者HAVING子句中引用这一域的SELECT查询语句运行速度比没有添加索引时要快。通过SHOW INDEX命令可以查看索引已被创建(列表B)。

值得注意的是:索引就像一把双刃剑。对表的每一域做索引通常没有必要,且很可能导致运行速度减慢,因为向表中插入或修改数据时,MySQL不得不每次都为这些额外的工作重新建立索引。另一方面,避免对表的每一域做索引同样不是一个非常好的主意,因为在提高插入记录的速度时,导致查询操作的速度减慢。这就需要找到一个平衡点,比如在设计索引系统时,考虑表的主要功能(数据修复及编辑)不失为一种明智的选择。

mysql 索引表的应用_MySQL查询优化之索引的应用详解相关推荐

  1. mysql 设置查询变量_MySQL查询优化--调整内部变量的详解

    MySQL是如此的开放,所以可轻松地进一步调整其缺省设置以获得更优的性能及稳定性.需要优化的一些关键变量如下: 改变索引缓冲区长度(key_buffer) 一般,该变量控制缓冲区的长度在处理索引表(读 ...

  2. mysql命令行查看表的触发器_Mysql事项,视图,函数,触发器命令(详解)

    事项开启和使用 //修改表的引擎 alter table a engine=myisam; //开启事务 begin; //关闭自动提交 set autocommit=0; //扣100 update ...

  3. mysql中的执行计划_MySQL中的执行计划explain详解

    一.用法及定义: explain为sql的执行计划.在sql前面加上explain关键字即可 如:explain select * from tbl_emp; 名词解释: id:[操作表的顺序] 1. ...

  4. mysql默认使用悲观锁_mysql乐观锁和悲观锁详解

    mysql乐观锁和悲观锁详解 相信很多朋友在面试的时候,都会被问到乐观锁和悲观锁的问题,如果不清楚其概念和用法的情况下,相信很多朋友都会感觉很懵逼,那么面试的结果也就不言而喻了. 那么乐观锁和悲观锁到 ...

  5. mysql语句中事务可靠性_MySql的事务使用与示例详解

    在MySQL中,事务就是一个逻辑工作单元的一系列步骤.事务是用来保证数据操作的安全性. 事务的特征: 1.Atomicity(原子性) 2.Consistency(稳定性,一致性) 3.Isolati ...

  6. mysql命令导入导出数据库_MYSQL命令行导入导出数据库详解

    Mysql命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql ...

  7. mysql日期比较大小 方式_mysql中日期比较大小方法详解

    在mysql中日期比较有许多的函数,下面我来给大家总结一下常用的mysql中日期比较大小有需要了解的朋友可进入参考参考,假如有个表product有个字段add_time,它的数据类型为datetime ...

  8. mysql基于时间盲注_MYSQL基于时间的盲注详解

    MYSQL基于时间的盲注 联合查询,报错注入,以及布尔盲注,都是基于攻击网站会回显消息,或者将错误信息返回在前端,或者会返回web页面的正确或错误 但是有时候网站关闭了错误回显或过滤了某些关键字,网页 ...

  9. mysql 对视图的操作_Mysql中关于视图操作的详解

    视图的操作: 1.视图的创建:create view view_name as 查询语句; 2.视图的查看:show tables;// 显示所有的表和视图 show create view view ...

最新文章

  1. linux vg 镜像,Linux下载_Linux系统各种版本ISO镜像下载(redhat,centos,oracle,ubuntu,openSUSE)...
  2. 纯CSS实现多级菜单,兼容IE6
  3. 15. 三数之和(双指针)
  4. 提供程序未返回 ProviderManifestToken 字符串
  5. 自学elastic search
  6. 携程状告去哪儿一案有猫腻
  7. Access中使用SQL语句应掌握的几点技巧
  8. SVN—怎么删除 SVN 上已有的URl
  9. 面试被问离职原因该怎么回答?
  10. Nginx架构四之七层负载均衡
  11. UWB通信中TOF技术详解
  12. Apache的性能解读
  13. 【UNR #1】合唱队形
  14. 嵌入式linux QT平台的显示插件
  15. 弘扬文明之风,彰显正能量!中山公园职工平凡岗位上的不凡坚守!
  16. 文档点击链接无法自动跳转浏览器+google浏览器重启无法继续浏览上次打开的网页
  17. 日程定时提醒程序C语言,DIY一个高大上带提醒的计时器,简单实用,你还在等什么...
  18. npm install安装失败 error D:\xxx\xxx\node_modules\node-sass: Command failed. Exit code: 1
  19. 用了影印版的教材,觉得不错,比翻译版的好
  20. uni-app外卖页面

热门文章

  1. [C++基础]039_C++异常处理初级出门+中级进阶
  2. C++ 出现异常“.... \debug_heap.cpp Line:980 Expression:__acrt_first_block==header“
  3. cognos安装过程各种问题跟解决方法
  4. [转] Gmail 的Host解决方案
  5. 【实践】强化学习在招聘推荐冷启动优化中的应用实践
  6. 【报告分享】2020年母婴未来消费新趋势报告.pdf(附下载链接)
  7. 【报告分享】5G网络切片分级白皮书.pdf(附下载链接)
  8. 【报告分享】2019年中国人工智能商业落地研究报告.pdf(附下载链接)
  9. 蓝桥杯入门训练序列求和
  10. 百度知识图谱技术及应用