MySQL数据库设计规范和优化建议-创新互联

设计规范建议:
1).索引规范
显式指定自增 int/bigint unsigned not null 作为主键
不使用外键
合理利用覆盖索引,但字段尽量不超过5个
合理利用最左索引(前缀索引/部分索引)
及时删除冗余索引
选择适当的索引顺序,选择性高条件靠前
基数( Cardinality )很低的字段不创建索引(MySQL还不支持 bitmap 索引)
采用第三方系统实现text/blob全文检索
常用排序(ORDER BY)、分组(GROUP BY)、取唯一(DISTINCT)字段上创建索引
单表索引数量不超过5个
索引字段条件不使用函数
2).开发环境
启用log_queries_not_using_indexes
设置long_query_time为最小值
定期检查分析slow log
授权和生产环境一致
关闭Query Cache
设置较小InnoDB Buffer Pool、key buffer size
数据量不能太少,否则有些性能问题无法提前规避
3).行为规范
批量导入、导出数据须提前通知DBA,请求协助观察
推广活动或上线新功能须提前通知DBA,请求压力评估
不使用SUPER权限连接数据库
单表多次ALTER操作必须合并为一次操作
数据库DDL及重要SQL及早提交DBA评审
重要业务库须告知DBA重要等级、数据备份及时性要求
不在业务高峰期批量更新、查询数据库
提交线上DDL需求,所有SQL语句须有备注说明
4).硬件
NUMA新架构,CPU直接存取内存,更高效
CPU一般不是瓶颈,但MySQL多核支持仍不佳
设备越来越廉价,大内存解决很多问题
SSD应用越来越广泛,未来是主力
RAID卡可有效提升IOPS及数据安全(RAID 10 vs RAID 5)
RAID卡必须配备BBU,设置FORCE WB
优化建议:
1).系统
升级到64位
/tmp使用/dev/shm的tmpfs
内核
IO调度:deadline,noop,反正不要cfq
VM管理:vm.swappiness=0
2).文件系统:xfs/zfs
全B+树,高效
分配组,提高并发度
延迟分配,减少IO
mount:nobarrier、data=ordered,writeback
3).MySQL配置
memlock
open_files_limit
max_connections
long_query_time
table_open_cache
key_buffer_size
query_cache_size
tmp_table_size/max_heap_table_size
innodb buffer pool
innodb_flush_log_at_trx_commit
interactive_timeout/wait_timeout
transaction_isolation
innodb_log_file_size
innodb_data_file_path
innodb_max_dirty_pages_pct

标题名称:MySQL数据库设计规范和优化建议-创新互联
网站路径:https://www.cdcxhl.com/article18/dpojgp.html

成都网站建设公司_创新互联,为您提供营销型网站建设手机网站建设面包屑导航网站策划网站收录做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化