zoukankan      html  css  js  c++  java
  • MySQL-优化

    数据库优化
    1.SQL语句优化
    2.索引优化
    3.数据库结构优化
    4.内存优化
    myisam内存优化
    myisam通过key_buffer缓存引块,加速myisam索引的读写速度,
    对于myisam表的数据块,MySQL没有特别的缓存机制,完全依赖于操作系统的IO缓存。
    1.key_buffer_size设置
    key_buffer_size决定myisam索引块缓存区的大小。
    直接影响myisam表的存取效率。对于一般myisam的
    数据库,建议将1/4可用内存分配给key_buffer_size。
    key_buffer_size=2G;
    2.read_buffer_size
    如果经常扫描myisam表,可以通过增大read_buffer_size
    的值来改善性能,但read_buffer_size是每个session独
    占的,如果默认值设置过大,就造成内存浪费。
    3.read_rnd_buffer_size
    对于需要排序的myisam表查询,如带有 order by的SQL,
    适当增加read_rnd_buffer_size的值,可以改善此类的SQL性能。
    但read_rnd_buffer_size是每个session独
    占的,如果默认值设置过大,就造成内存浪费。
    innodb
    用一块内存区做IO缓存池,该缓存池不仅用来缓存innodb的索引块,
    而且也用来缓存innodb的数据块
    1.设置innodb_buffer_pool_size
    该变量决定了innodb存储引擎表数据和搜索引数据的最大缓存区大小
    2.innodb_log_buffer_size
    决定了innodb重做日志缓存的大小,对于可能产生大量更新记录的大
    事务,增加innodb_log_buffer_size的大小,可以避免innodb在事务提交前就执行不必要
    的日志写入磁盘操作。
    调整mysql并发相关操作
    1.调整max_connections,提高并发连接
    2.调整thread_cache_size,加快连接数据库的速度,
    MySQL会缓存一定数量的客户服务线程以备重用,通过参数
    thread_cache_size可以控制MySQL缓存客户服务线程的数量。
    3.innodb_lock_wait_timeout:控制innodb事务等待行锁的时间,对于
    快速处理sql语句,可以将行锁的等待时间调小,以避免事务长时间挂起,
    对于后台运行的批处理操作,可以将行锁等待时间调大,
    以避免发生大的回滚操作。

    1.定期分析表
    ANALYSE[LOCAL|NO_WRITE_TO_BINLOG] TABLE tbl_name
    2.定期检查表
    CHECK TABLE tbl_name [OPTION]
    check table 也可以检查视图是否有错误,比如在视图定义
    中被引用的表已经不存在。
    3.定期优化表
    OPTIMIZE [LOCAL|NO_WRITE_TO_BINLOG] TABLE tbl_name
    只对myisam,bob,innodb表起作用。
    对于myisam表,optimize table按如下方式操作:
    如果表已经删除或分解了行,则修复表;
    如果未对索引页进行分类,则进行分类;
    如果表的统计数据没有更新(并且通过索引进行分类不能实现修复)
    则进行更新。


    获取表的相关信息
    show table status like 'name'G


  • 相关阅读:
    do文件的编写和执行
    AES内部结构(加密部分)
    暂稳态效应攻击
    #computer architecture#memory3
    pandas记录
    selenium+chromeDriver配合使用(运行js脚本)
    selenium + chromeDriver的ip代理设置
    requests记录
    python 记录
    1.文件重命名工具
  • 原文地址:https://www.cnblogs.com/3ddan/p/10361711.html
Copyright © 2011-2022 走看看