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

    一,查询优化

    1.先用 DESC 或 EXPLAIN 分析下查询语句

    2.合适的索引

    3.使用like 第一个字符是% 不能使用索引

    4.多列索引只有查询条件中使用了第一个字段,才能用的索引

    5.使用OR关键字,前后两个条件都是索引是才有效

    6.优化子查询,使用JOIN 代替子查询

    二,表结构优化

    1.将字段很多的表中不太常用的字段分解成多个表(select * from member LEFT JOIN detail ON member.id=detail.mid)

    2.适当增加冗余字段

    三,使用中间表或者缓存一些数据nosql

      对一些需要查询多张表,并且结果更新不是太频繁的,可以使用中间表或者nosql等缓存一下

    五,优化写入速度

      越多的索引,写入速度越慢,书上给出的方法是写入前禁用索引和唯一性索引,写入完成后,再开启,我感觉不太靠谱啊

    六,定期分析,检查,优化表

      分析表:ANALYZE [LOCAL] TABLE name;

      检查表:CHECK TABLE name option={QUICK|FAST|MEDIUM|EXTENDED|CHANGED}

      优化表:OPTIMIZE [LOCAL] table name;

    七,提升服务器硬件性能,和配置

      1.增加缓存

      2.固态硬盘

      3.多处理器

    八,优化mysql参数

      key_buffer_size:索引缓冲区大小

      table_cache:同时打开表的个数

      query_cache_type: 0不适用缓冲区,1所有查询使用缓冲区,2只有使用SQL_CACHE才能使用缓冲区

      query_cache_size:查询缓冲区大小

      sort_buffer_size:排序缓冲区大小,这个值越大,进行排序速度越快

      read_buffer_size:每个线程连续扫描时分配的缓冲区大小

      read_rnd_buffer_size:每个线程保留的缓冲区大小

      innodb_buffer_pool_size:innodb类型的表和索引的最大缓存

      max_connections:最大连接数

      thread_buffer_size:表示可以复用的线程数量

      wait_timeout:关闭一个连接时等待的秒数,默认28800

  • 相关阅读:
    ArcGIS影像配准与空间配准
    去除右键菜单opendlg
    Windows环境下Android Studio v1.0安装教程
    OpenGL入门
    Fetching android sdk component information
    事件的委托处理(Event Delegation)
    Javascript模块化编程:模块的写法
    10种排序算法总结
    GitHub-修改以下host-ip可加快访问速度
    this
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/4809481.html
Copyright © 2011-2022 走看看