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

  • 相关阅读:
    Sprinig.net 双向绑定 Bidirectional data binding and data model management 和 UpdatePanel
    Memcached是什么
    Spring.net 网络示例 codeproject
    jquery.modalbox.show 插件
    UVA 639 Don't Get Rooked
    UVA 539 The Settlers of Catan
    UVA 301 Transportation
    UVA 331 Mapping the Swaps
    UVA 216 Getting in Line
    UVA 10344 23 out of 5
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/4809481.html
Copyright © 2011-2022 走看看