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

  • 相关阅读:
    访问者模式
    oracle触发器简单实用示例
    C#控件交互效果类(也可以用作缩小面板放大,展示更多信息)
    23种设计模式探索C#
    windows快捷操作个人记录(常用)
    C#巧妙使用关键字async/await
    学习的枚举类型,结构以及初步了解数组
    目前学习.net时间让我摸不着头脑的事情
    对C#中几个循环语句的使用,请教
    学习了用控制台显示结果
  • 原文地址:https://www.cnblogs.com/chengxuyuan-liu/p/10458262.html
Copyright © 2011-2022 走看看