zoukankan      html  css  js  c++  java
  • Mysql优化

    Mysql优化

    详情请查看https://www.cnblogs.com/clsn/p/8214048.html

    1、为什么要对数据库进行优化?

      1.1、避免出现页面访问错误

    •  由于数据库连接timeout产生页面5xx的错误
    • 由于慢查询造成页面无法加载
    • 由于阻塞造成数据无法提交

      1.2、增加数据库的稳定性  

    • 很多数据库问题都是由于低效的查询引起的

      1.3、优化用户的体验

    • 流畅页面的访问速度
    • 良好的网站功能体验

    2、数据库的优化可以从以下几个方面

      2.1、sql以及索引

      2.2、数据库表结构

      2.3、系统配置

      2.4、硬件

    3、sql以及索引的优化

      3.1、慢查询日志的常用sql

      是否开启慢查询日志,有两个值off/on。

    show VARIABLES like 'slow_query_log'

      设置是否开启慢查询。

    set global slow_query_log = on

      

      查看日志文件的状态

    show VARIABLES like '%log%'

       

      设置开启未使用索引的查询

    set GLOBAL log_queries_not_using_indexes=on

       

      查看慢查询的设置时间,默认为10秒;设置慢查询的时间为1s

    show VARIABLES like 'long_query_time'
    set long_query_time = 1

      3.2、慢查询日志的存储格式

    执行该sql的时间
    # Time: 2018-09-17T07:18:02.492417Z
    
    执行该条sql的主机信息
    # User@Host: root[root] @ localhost [127.0.0.1]  Id:    26
    
    该条sql的执行信息
    # Query_time: 0.002000  Lock_time: 0.000000 Rows_sent: 356  Rows_examined: 712
    
    该条sql的执行时间
    SET timestamp=1537168682;
    
    该条sql的内容
    select * from t_user LIMIT 6;

       

      3.3、使用explain来执行SQL的执行计划

    expalain返回各列的含义:

    table:显示这一行的数据是关于哪张表的

    type:这是最重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、index和All。

    possible_keys:显示可能应用在这张表中的索引。如果为NULL,没有可能的索引。

    key:实际使用的索引。如果为NULL,没有使用索引。

    key_len:使用的索引的长度,在不损失精度的情况下,长度越短越好。

    ref:显示索引的那一列被使用了,如果可能的话是一个常数。

    rows:MYSQL认为必须检查的用来返回请求数据的行数。

    Extra:Extra列需要注意的返回值。

      Using filesort:看到这个的时候查询就需要优化了,

      Using temporary:看到这个的时候查询就需要优化了。MYSQL需要创建一个临时表来存储结果,这通常发生在不同的列集进行ORDER BY上,而不是GROUP BY上。

  • 相关阅读:
    C#动态编译计算表达式的值 拓荒者
    Microsoft AJAX Library对 Error的扩展 拓荒者
    在分布式事务(MSDTC)中使用OLE DB数据库连接访问数据 拓荒者
    【转】ExtJS DateField 日期控件Format格式化 拓荒者
    自定义 Web 服务器控件 拓荒者
    Microsoft AJAX Library对 Array的扩展 拓荒者
    (转载)IE 浏览器的创新
    XUnit配置Resharper快捷键
    表现层模式MVC
    读Clean Code 数据结构和对象
  • 原文地址:https://www.cnblogs.com/xiaocao123/p/9663266.html
Copyright © 2011-2022 走看看