zoukankan      html  css  js  c++  java
  • MySQL性能优化


    1、优化查询
    可以通过分析查询语句了解查询语句的执行情况:
    explain / describe 查询语句
    查询结果显示了id,select_type,table,type,possible_keys,key等信息
    id:表示查询语句的编号
    select_type:表示查询语句的类型。该参数的几个常用取值:simple表示简单查询,其中不包括连接查询和子查询;primary表示主查询,或者最外层的查询语句;union表示连接查询的第二个或后面的查询语句
    table:表示查询的表
    possible_keys:表示查询中可能使用到的索引
    key:查询中实际用到的索引
    key_len:索引字段的长度
    rows:表示查询的行数
    使用索引查询:
    查询语句使用like,如果查询条件的第一个字符是%,索引不会被使用
    多列索引只有在查询条件的第一个字段是索引,索引才会被使用
    查询语句中如果有or,则其前后的查询条件字段必须都是索引,索引才会被使用
    优化查询基本原则:
             尽量早过滤
           优化子查询,使用join代替子查询
             尽量少排序
    2、优化数据库结构:
    ○1分表、添加中间表、增加冗余字段
    ○2优化插入记录的速度:
    1、当有大量插入数据时,应先禁用索引插入完毕后再开启索引。
      禁用索引语句:alter table 表名 disable keys
      开启索引语句:alter table 表名 enable keys
     
    2、插入记录时禁用唯一性检查,插入后开启
      禁用唯一性检查:set unique_checks = 0
      开启唯一性检查:set unique_checks = 1
    3、优化insert语句
      插入数据时应尽量一次性插入,减少与数据库的连接效率更高
    ○3分析表、检查表、优化表
    优化MySQL的参数:
    内存中会为MySQL保留部分缓冲区,这些缓冲区用以提高MySQL数据库的处理速度。缓冲区的大小都是在MySQL配置文件中进行设置的。
    一些重要的参数配置在my.ini文件的mysqld组中。
     
     
  • 相关阅读:
    Mosaic 前端微服务框架
    使用skipper 扩展fabio 的路由&&http proxy 功能
    Introducing Makisu: Uber’s Fast, Reliable Docker Image Builder for Apache Mesos and Kubernetes
    lua-resty-shell 多任务执行
    openresty 使用lua-resty-shell 执行shell 脚本
    ncm 让跨项目配置一致性简单的工具
    lapis 项目添加prometheus 监控集成grafana
    使用prometheus+ grafana+nginx-module-vts 模块监控openresty
    两天快速开发一个自己的微信小程序
    笔记本如何查看mac地址
  • 原文地址:https://www.cnblogs.com/cn-chy-com/p/10711688.html
Copyright © 2011-2022 走看看