生产环境MySQL优化

a:硬件的优化:

1、 采用64位cpu,cpu至少4颗,L2缓存越大越好
2、 内存要大,32-64G运行1-2个实例,96-128G运行3-4个实例
3、 机械盘选用sas盘,转速15000以上,有可能的话使用ssd
4、 raid卡使主库用raid10,从库用raid0
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语句注入

原地址:http://lidao.blog.51cto.com/3388056/1945391

posted @ 2017-08-17 18:04  martin1317  阅读(556)  评论(0编辑  收藏  举报