mysql 查询速度优化

原创 2011年01月12日 15:38:00

1. 当只要一行数据时使用 LIMIT 1

      当你查询表的有些时候,你已经知道结果只会有一条结果,但因为你可能需要去fetch游标,或是你也许会去检查返回的记录数。在这种情况下,加上 LIMIT 1 可以增加性能。这样一样,MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。  

 

2, EXPLAIN   SELECT 查询用来跟踪查看效果

 

   使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的……等等,等等。 

 

3. 避免 SELECT *

    从数据库里读出越多的数据,那么查询就会变得越慢。并且,如果你的数据库服务器和WEB服务器是两台独立的服务器的话,这还会增加网络传输的负载。

 

 

4. 拆分大的 DELETE INSERT 语句

    如果你需要在一个在线的网站上去执行一个大的 DELETE INSERT 查询,你需要非常小心,要避免你的操作让你的整个网站停止相应。因为这两个操作是会锁表的,表一锁住了,别的操作都进不来了。Apache 会有很多的子进程或线程。所以,其工作起来相当有效率,而我们的服务器也不希望有太多的子进程,线程和数据库链接,这是极大的占服务器资源的事情,尤其是内存。 

如果你把你的表锁上一段时间,比如30秒钟,那么对于一个有很高访问量的站点来说,这30秒所积累的访问进程/线程,数据库链接,打开的文件数,可能不仅仅会让你泊WEB服务Crash,还可能会让你的整台服务器马上掛了。所以,如果你有一个大的处理,你定你一定把其拆分,使用 LIMIT 条件是一个好的方法。下面是一个示例:

18

 

01 while (1) { 

 

02     //每次只做1000 

 

03     mysql_query("DELETE FROM logs WHERE log_date <= '2009-11-01' LIMIT 1000"); 

 

04     if (mysql_affected_rows() == 0) { 

 

05         // 没得可删了,退出! 

 

06         break; 

 

07     } 

 

08     // 每次都要休息一会儿 

 

09     usleep(50000); 

 

10 }

 

4,MySQL查询可以启用高速查询缓存。这是提高数据库性能的有效Mysql优化方法之一。当同一个查询被执行多次时,从缓存中提取数据和直接从数据库中返回数据快很多,

 

5,使用连接(join)来代替子查询
     SELECT * FROM customerinfo
     WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo )
     用下面来替换:
     SELECT * FROM customerinfo
     LEFT JOIN salesinfo ON customerinfo.CustomerID=salesinfo.CustomerID
     WHERE salesinfo.CustomerID IS NULL

 

 

 

Mysql处理海量数据时的一些优化查询速度方法

Mysql处理海量数据时的一些优化查询速度方法 最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 由于在参与的实际项目中发现当mysql表的数据...

MySQL 处理海量数据时的一些优化查询速度方法

在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍。想想可知,假如我们查询淘宝的一个订单详情,如...

mysql处理海量数据时的一些优化查询速度方法

由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的...

MySQL 处理海量数据时的一些优化查询速度方法

在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍。想想可知,假如我们查询淘宝的一个订单详情,如...

MySQL 处理海量数据时的一些优化查询速度方法

在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍。想想可知,假如我们查询淘宝的一个订单详情,如...

mysql处理海量数据时的一些优化查询速度方法

最近工作上遇到需要查找大量订单数据的功能,于是就开始关注针对Mysql数据库的select查询语句的相关优化方法。       由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通...

Mysql处理海量数据时的一些优化查询速度方法

由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的...

针对MySQL提高百万条数据的查询速度优化

一.如下 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  2.应尽量避免在 where 子句中对字段进行 null 值判断,否则...

mysql处理海量数据时的一些优化查询速度方法

本文章出自:http://www.cnblogs.com/imsoft/p/6418087.html 最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 ...
  • CNYYGJ
  • CNYYGJ
  • 2017年05月18日 01:12
  • 152
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql 查询速度优化
举报原因:
原因补充:

(最多只允许输入30个字)