MySQL优化

my.cnf 生成器
http://imysql.com/my_cnf_generator
总结
1、使用 5.6 以上版本(支持多核),使用 MariaDB、或 Percona 版本分支。
2BIOS 设置优化System Profile(系统配置)选择 Performance Per Watt Optimized(DAPC),发挥最大功耗
性能;Memory Frequency(内存频率)选择 Maximum Performance(最佳性能);C1E,允许在处理器处于
闲置状态时启用或禁用处理器切换至最低性能状态,建议关闭(默认启用);C StatesC状态),允许启用
或禁用处理器在所有可用电源状态下运行,建议关闭(默认启用)。
3IO 子系统优化
*阵列卡配备 CACHE BBU 模块,提高 IOPS
*设置写策略为 WB,或者 FORCE WB,禁用 WT 策略
*关闭预读,没必要预读,那点宝贵的 CACHE 用来做写缓存
*阵列级别使用 RAID 1+0,而不是 RAID 5
*关闭物理磁盘 cache 策略,防止丢数据
*使用高转速硬盘,不使用低转速盘
*使用 SSD 或者 PCIe-SSD
4文件系统首选 xfs,其次 ext4zfs 也很不错,但在 linux 下不是那么可靠
5默认使用 InnoDB 引擎,可适用 99%以上业务场景(MyISAM 只能缓存索引,InnoDB 可以缓存索引+
据)
*并发–没人愿意所有的请求都被串行的执行完成
*数据一致性–交易类业务要求数据高一致性,确保数据完整性
*Crash Recovery–故障自动修复,修复相比 MyISAM 速度更快
*更高存取效率–行锁减低锁粒度,更高内存利用率提高数据、索引存取效率
6、设计优化–Schema 设计
*不管 InnoDB 与否,都设计自增列主键TPS 能提升约 9%
*日期时间、IPV4 适用 INT UNSIGNED 存储(不需要使用 datetime varchar 处理,UUID 性能很差)
*性别、是否等枚举类型,使用 ENUM/TINYINT,而非 CHAR/VARCHAR
*杜绝 TEXT/BLOB,可以做垂直拆分,或者转成 MyISAM
*USERNAME:建议使用 VARCHAR(30) ,不要使用 VARCHAR(255)CHAR(30),以免磁盘空间的浪费
*所有字段显式定义 NOT NULL(某个字段允许为 NULL,可能会导致磁盘空间的消耗,select count(*)
结果不准确,或者导致性能上的问题)
7、设计优化–索引设计
*基数(Cardinality )很低的字段
*创建索引(MySQL 还不支持 bitmap 索引)(否则会导致索引利用率很差,和更多的 IO 发生)
*采用第三方系统实现 text/blob 全文检索
*常用排序(ORDER BY)、分组(GROUP BY)、取唯一(DISTINCT)字段上创建索引

试读已结束,继续阅读请购买后下载

所需金币:2
您当前拥有金币:0

您可以先点击 收藏 本资料,赚取金币后购买。
出售资料赚金币
做任务赚金币

2017-10-12
页数8
浏览74
下载0

已下载用户的评价

您还未下载该资料,不能发表评价;
评价已下载资料,获取金币奖励;查看我的 待评价资源
本资料还没有评价。

贡献者

yi1982523系统管理员,CJZQ

关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
© 2017 talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30