关于MySql数据库性能的Tips

@ 2011-12-02 17:54:38
标签:

    SQL语句的优化

    Slow Query Log

    “不要过早地优化”这一原则也适用于SQL语句。在开发过程中,先从宏观的角度实现功能;在部署到实际环境中后,可以通过监控MySql的slow query log来监视那些“缓慢”的查询,再酌情优化。

    使用Query Cache提高效率

    MySql可以对SQL查询语句的结果进行缓存,这个缓存用“未经解析”的SQL语句本身作为索引。这意味着,那怕只是一个空格的差别,也会被认为是不同的SQL语句。当然,如果查询语句中用到了一些“动态”的函数,比如NOW()RAND()等,则查询语句显然是不能认为是一样的。

    用EXPLAIN语句分析SQL语句

    EXPLAIN命令可以用来分析SQL语句以检视查询会怎样工作,比如会用到哪些索引等。

    参见MySql官方的文档:Optimizing Queries with EXPLAIN

    合理利用索引

    利用索引可以加快查询的速度。在利用索引带来的好处的同时,主要是考虑如何尽量减少索引数据的大小。因为索引越大,越是不容易被读入系统的内存。

    关于Performance的一些问题

    Q: 同一条SQL,为什么第一次查询很慢,之后的查询却很快?
    A: 一种可能情况是之后的查询用到了Query Cache. 还有另一种情况,是第一次查询引起了Disk IO,而之后的查询却是从磁盘操作系统的磁盘缓存(Cache)中读取数据。

    网络资源

    标签:

      分享到:
      comments powered by Disqus

      28/31ms