Mysql常用的优化技巧

1.通过show status 命令了解各种sql的执行效率

2. 定位执行效率较低的SQL语句

  开启慢查询记录:

  打开Mysql配置文件my.ini ,找到 [mysqld] 在其下面添加

  long_query_time = 2 // 慢查询时间

  log_slow_queries = E:/mysql/logs/log.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件

3.通过explain分析低效率的SQL语句的执行情况

  使用explain分析该dql语句:

  EXPLAIN SELECT * FROM order_copy WHERE id=12345
  会产生如下信息:
  select_type:表示查询的类型。
  table:输出结果集的表
  type:表示表的连接类型(system和const为佳)
  possible_keys:表示查询时,可能使用的索引
  key:表示实际使用的索引
  key_len:索引字段的长度
  rows:扫描的行数
  Extra:执行情况的描述和说明

  注意:要尽量避免让type的结果为all,extra的结果为:using filesort

4.适当的位置加上索引【注意以下几种情况】

  • 较频繁的作为查询条件字段应该创建索引

    select * from order_copy where id = $id

  • 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

   select * from order_copy where sex=’女’

  • 更新非常频繁的字段不适合创建索引

    select * from order_copy where order_state=’未付款’

  • 不会出现在WHERE子句中字段不该创建索引

5.如何建索引

请参考http://www.cnblogs.com/itsharehome/p/4955162.html

时间: 2024-10-03 14:24:39

Mysql常用的优化技巧的相关文章

mysql最好的优化技巧

mysql最好的优化技巧 发表于 2012-04-12 - 浏览:979 评论:0 收藏 0 1.选取最适用的字段属性 MySQL 可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小.例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了.同样的,如果可

MySQL十大优化技巧详解

1.优化你的MySQL查询缓存 在MySQL服务器上进行查询,可以启用高速查询缓存.让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一.当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的. 但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它.在有些处理任务中,我们实际上是可以阻止查询缓存工作的. // query cache does NOT work $r = mysql_query("SELECT username FROM user WHERE signu

【转】101个MySQL调试和优化技巧

MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些思路是通用的.我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧. MySQL 服务器硬件和操作系统调节: 1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多. 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读

掌握MySQL数据库这些优化技巧,事半功倍!

一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇文章主要谈谈MySQL数据库在发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 阶段一:数据库表设计 项目立项后,开发部门根据产品部门需求开发项目.开发工程师在开发项目初期会对表结构设计.对于数据库来说,表结构设计很重要,如果设计不当,会直接影响到用户访问网站速度,用户体验不好!这种情况具体影响因素有很多,例如慢查询(低效的查询语句).没有适当建立索引.数

MySQL SQL语句优化技巧

1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from

MySql常用命令--优化参数以及日常管理

显示插入查询的优化参数: show variables like "concurrent_insert"; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | concurrent_insert | AUTO | +-------------------+-------+ set GLOBAL concurrent_insert=2; 插入数据时MySQL会对插入

tomcat的一些常用的优化技巧

这次介绍的是如何简单的优化Tomcat服务器,如果用户并发量小,系统可能不会出问题,但是并发量大时,系统反应速度迅速下降,由于不了解原因拼命在自己的应用中寻找问题,从而浪费了宝贵的时间.下面来看看Tomcat是如何优化的. (1)屏蔽DNS查询 Web应用程序可以通过Web容器提供的getRemoteHost()方法获得访问Web应用客户的IP地址和名称,但是这样会消耗Web容器的资源,并且还需要通过IP地址和DNS服务器反查用户的名字.因此当系统上线时,可以将这个属性关闭,从而减少资源消耗,那

Mysql常用的一些技巧命令

1.统计指定数据库下表的数量 mysql > use information_schema; mysql > SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname'; 持续更新中...

Tomcat常用的优化技巧

(1)屏蔽DNS查询 Web应用程序可以通过Web容器提供的getRemoteHost()方法获得访问Web应用客户的IP地址和名称,但是这样会消耗Web容器的资源,并且还需要通过IP地址和DNS服务器反查用户的名字,因此当系统上线时,可以将这个属性关闭,从而减少资源消耗,那么Web应用也就只能记录下IP地址了.修改的属性是enableLoopups="false". (2)调整线程数 Tomcat通过线程池来为用户访问提供响应,对于上线的系统初步估计用户并发数量后,然后调整线程池容量