<b>优化MySQL数据库查询的三种办法</b>[MySQL防范]
本文“<b>优化MySQL数据库查询的三种办法</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
任何一位数据库程序员城市有这样的领会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个利用程序的运行产生严重的影响,其不但损耗掉更多的数据库时间,且它将对其他利用组件产生影响.
好像别的学科,优化查询性能很大程度上决意于开辟者的直觉.幸运的是,像MySQL这样的数据库自带有一些帮忙工具.本文扼要谈论诸多工具之三种:利用索引,利用EXPLAIN解析查询以及调整MySQL的内部配置.
1、利用索引
MySQL答应对数据库表举行索引,以此能疾速查找记录,而无需一开始就扫描整个表,由此明显地加快查询速度.每个表最多可以做到16个索引,此外MySQL还支持多列索引及全文检索.
给表增添一个索引非常简单,只需调用一个CREATE INDEX号令并为索引指定它的域便可.
这里,对users表的username域做索引,以确保在WHERE大概HAVING子句中引用这一域的SELECT查询语句运行速度比没有增添索引时要快.
值得注意的是:索引就像一把双刃剑.对表的每一域做索引普通没有必要,且极大概招致运行速度减慢,因为向表中插入或改正数据时,MySQL不得不每次都为这些额外的工作重新成立索引.另一方面,避免对表的每一域做索引一样不是一个非常好的主张,因为在提高插入记录的速度时,招致查询操作的速度减慢.这就需求找到一个均衡点,比方在计划索引系统时,考虑表的主要功效(数据修复及编辑)不失为一种明智的挑选.
2、优化查询性能
在解析查询性能时,考虑EXPLAIN关键字一样很管用.EXPLAIN关键字普通放在SELECT查询语句的前面,用于描写MySQL若何履行查询操作、以及MySQL成功返回后果集需求履行的行数.
3、调整内部变量
MySQL是如此的开放,所以可轻松地进一步伐整其缺省设置以得到更优的性能及安定性.需求优化的一些关键变量以下:
改变索引缓冲区长度(key_buffer)
普通,该变量掌握缓冲区的长度在处理索引表(读/写操作)时利用.MySQL利用手册指出该变量可以不断增添以确保索引表的最佳性能,并举荐利用与系统内存25%的大小作为该变量的值.这是MySQL非常重要的配置变量之一,假如你对优化和提高系统性能有爱好,可以从改变 key_buffer_size变量的值开始.
改变表长(read_buffer_size)
当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区.read_buffer_size变量掌握这一缓冲区的大小.假如你认为持续扫描举行得太慢,可以通过增添该变量值以及内存缓冲区大小提高其性能.
设定翻开表的数目的最大值(table_cache)
该变量掌握MySQL在任什么时刻候翻开表的最大数目,由此能掌握服务器呼应输入恳求的本领.它跟max_connections变量密切相关,增添table_cache值可以使MySQL翻开更多的表,就如增添max_connections值可增添衔接数一样.当收到大量差别数据库及表的恳求时,可以考虑改变这一值的大小.
对缓长查询设定一个时间限制(long_query_time)
MySQL带有"慢查询日记",它会自动地记录全部的在一个特定的时间范围内还没有完毕的查询.这个日记关于跟踪那些低效率大概行为不端的查询以及探求优化对象都非常有效.long_query_time变量掌握这一最大时间限定,以秒为单位.
以上谈论并给出用于解析和优化SQL查询的三种工具的利用办法,以此提高你的利用程序性能.
以上是“<b>优化MySQL数据库查询的三种办法</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |