zoukankan      html  css  js  c++  java
  • 数据库优化

    目的:

    • 避免网页访问错误
    1. 避免访问网页由于连接timeout出现5XX错误
    2. 慢查询造成页面的无法加载
    3. 由于阻塞造成的数据的无法提交
    • 增加数据库的稳定性
    1. 很多数据库问题都是由于低效的查询引起的
    • 优化用户体验
    1. 浏览网页的速度
    2. 良好网页功能的体验

    数据库优化的几个方面以及成本问题

    一、SQL优化

      1. 如何发现有问题的SQL  使用MYSQL慢查询日志对有效率问题的SQL进行监
      2. 如何开

        启慢查询日志 

        • 关于慢查询日志的几个变量 1.slow_query_log 慢查询日志   2.slow_query_log_file 慢查询日志的存放地址 3.log_queries_not_using_indexes 没使用索引的查询是否放入慢查询日志 4.long_query_time 对查询SQL最长多久的SQL进行记录,测试中我们把他设置为0以便对所有的SQL都进行慢查询日志记录
        • 我们可以通过查询变量的方式对这几个变量进行查询 例如:show variables like 'slow_qu%'  看他们的开启状态或者值
        • 设置慢查询
        1. set global slow_query_log_file='/home/mysql/sql_log/slow-mysql.log'  设置慢查询日志的存放地方 
        2. set global log_queries_not_using_indexes=on    没使用索引的查询也放入慢查询日志中以便后面进行优化
        3. set global long_query_time =0   (设置完需要重启mysql)
        4. set global slow_query_log=on

    慢查询日志分析工具

        1. mysql自带的mysqldumpslow  在服务器上装上mysql它就已经安装了我们可以通过命令对它进行使用
        2. pt-query-digest

    如何通过慢查询日志发现有问题的SQL(Query_Time大,Rows examine大,Rows send/Rows examine小的SQL)

          • 查询次数多且每次查询占用时间长的SQL,通常为pt-query-digest分析前几个查询
          • Rows examine IO大的SQL,注意pt-query-digest分析中的Rows examine项(扫描的行数)
          • 未命中索引的SQL,注意pt-query-digest分析中Rows examine 远远大于Rows send(实际返回的行数)项

      如何分析SQL查询

          • 使用explain查询SQL执行计划

          • 对explain返回结果分析

    SQL优化的实例分析

    https://www.cnblogs.com/gomysql/p/3632209.html

    二、索引优化   补充索引的知识, 查看:https://www.cnblogs.com/bypp/p/7755307.html   很强大、

    1. 如果选择合适的列建立索引
    2. 索引优化SQL的方法
    3. 索引维护的方法

    三、数据库结构优化

    1. .选择合适的数据类型
    2. 数据库表的范式化优化
    3. 数据库表的反范式化优化
    4. 数据库表的垂直拆分
    5. 数据库表的水平拆分

    四、系统配置优化

         1.操作系统配置

          2.数据库配置(可以借用第三方配置向导  Person Configuration Wizard)

    五、服务器硬件优化

        1.cpu 2.Disk IO

  • 相关阅读:
    linq——group by
    WebApi——json返回多了 k_BackingField
    Fiddler使用
    iis发布,部署
    项目梳理7——Nuget包管理
    CVS导出&&自定义Attribute的使用
    项目梳理6——使用WebApiTestClient为webapi添加测试
    项目梳理5——修改已生成.nuspec文件
    项目梳理4——WebApi项目,使用注释填充Description字段
    jQuery object and DOM Element
  • 原文地址:https://www.cnblogs.com/chengxuyuan-liu/p/10458262.html
Copyright © 2011-2022 走看看