老男孩教育每日一题-第88天-企业生产MySQL如何优化?

参考答案:

a:硬件的优化:

1、    采用64位cpu,cpu至少4颗,L2缓存越大越好
2、    内存要大,32-64G运行1-2个实例,96-128G运行3-4个实例
3、    机械盘选用sas盘,转速15000以上,用可能的话使用ssd
4、    raid卡使用raid10
5、    网卡多块,千兆以上
6、    数据库不要使用虚拟化,slave硬件要好于master

b:操作系统优化

1、    操作系统选择x86_64位,尽量采用xfs文件系统
2、    优化磁盘存储参数
3、    优化内核参数
4、    优化网络等

c:mysql构架优化

1、根据内存大小,配置服务器跑多实例
2、主从复制采用mixed模式,尽量不要跨机房同步,若要跨机房,尽量采用远程写,本地读
3、定期检查、修复主从复制的数据差异
4、业务拆分,搜索功能不使用MySQL数据库执行;某些高并发,安全性一般的业务使用nosql,如:memcache、 redis等
5、数据库前端加cache,如memcache,用于用户登录,商品查询
6、动态数据静态化,整个文件静态化,页面片段静态化
7、数据库集群读写分离,一主多从,通过dbproxy进行集群读写分离
8、单表超过800万,拆库拆表,如人工将(登录、商品、订单)拆表拆库
9、选择从库备份,并且对数据库进行分表分库备份

d:MySQL数据库层面优化

1、    优化my.cnf参数
2、    优化库表设计,包括字符集、字符串长度、创建短索引、多用复合索引;
3、    SQL语句优化,减少慢语句数量;

e:数据库管理流程、制度优化

1、    人的流程:开发—>核心运维/DBA
2、    测试流程:内网 IDC测试线上执行
3、    客户端管理,PHPMYADMIN

f:MySQL数据库安全优化

1、    数据库禁止设置外网
2、    数据库文件权限优化;
3、    授权用户权限限制,尽量专库专用户
4、    限制开发对生产库的操作权限
5、    防止SQL语句注入

备注

今天是每日一题陪伴大家的第88天期待你的进步

对于题目和答案的任何疑问,请在博客评论区留言
往期题目索引

http://lidao.blog.51cto.com/3388056/1914205


本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1945391


上一篇:iptables防火墙详解(三)规则的导出、导入以及编写防火墙脚本


下一篇:C++ 学习小程序之 map 的用法