zoukankan      html  css  js  c++  java
  • MySQL 性能调优之存储引擎

    原文:http://bbs.landingbj.com/t-0-246222-1.html        http://bbs.landingbj.com/t-0-245851-1.html

    MySQL性能调优中,对MyISAM存储引擎的优化。

    在优化MyISAM存储引擎中,需要考虑的点如下:

    尽量索引,MyISAM只缓存索引不缓存数据;

    根据实际需求,调整读写优先级;

    延迟插入,使用 INSERT DELAY,减少和 SELECT 竞争

    数据顺序操作,让INSERT全部到尾部,减少和SELECT竞争;

    分解大操作,将大操作分解成多步小操作,防止长时间锁定;

    降低并发数,表锁会导致竞争激烈,通过排队机制提高效率;

    充分利用 Query Cache:对于静态数据,尽量使用 Query Cache。

    另外MyISAM不需要事务支持,并且以读为主。MyISAM的读效率较高,但MyISAM有一个弊病,那就是表容易坏,需要定期REPAIR。

    在线上环境中,InnoDB适用于以下场景:

    1.需要事务支持;

    2.并发较大;

    3.数据变更比较频繁;

    4.数据一致性要求较高;

    5硬件设备内存较大,远大于索引数据量;

    在优化InnoDB存储引擎中,需要考虑的点如下:

    1.主键尽可能小:所有非主键索引都需要存储主键;

    2.索引整合,减少冗余索引,降低数据量;

    3.避免全表扫描,因为会导致表锁;

    4.尽量自己控制事务,关闭aotucommit;

    5.尽量缓存所有数据和索引;

    6.合理设置innodb_flush_log_at_trx_commit;

    7.充分利用索引避开表锁;

    8.避免主键更新。

    InnoDB和MyISAM各有所长,没有哪个比哪个好,只要能解决实际问题就好。在生产环境中使用哪种存储引擎需要经过多方面的考虑。实际上,很多公司是两种存储引擎混用的。

    逆风的方向更适合飞翔,不怕千万人阻挡,只怕自己投降!
  • 相关阅读:
    OC-为何用copy修饰block
    OC-RunLoop运行循环
    苹果审核之遇到IPV6问题被拒的解决方法
    LeetCode学习_day1:原地算法
    OC-加载h5富文本的代码,并计算高度
    OC-bug: Undefined symbols for architecture i386: "_OBJC_CLASS_$_JPUSHRegisterEntity", referenced from:
    了解iOS各个版本新特性总结
    iOS 快速打包方法
    iOS tableView侧滑删除的第三方控件
    Object_C 集成环信时,中文环境下不显示中文
  • 原文地址:https://www.cnblogs.com/jackzz/p/9125968.html
Copyright © 2011-2022 走看看