参考答案:
a:硬件的优化:
一、采用64位cpu,cpu至少4颗,L2缓存越大越好
二、内存要大,32-64G运行1-2个实例,96-128G运行3-4个实例
三、机械盘选用sas盘,转速15000以上,用可能的话使用ssd
四、raid卡使用raid10
五、网卡多块,千兆以上
六、数据库不要使用虚拟化,slave硬件要好于master
b:操做系统优化
一、操做系统选择x86_64位,尽可能采用xfs文件系统
二、优化磁盘存储参数
三、优化内核参数
四、优化网络等
c:mysql构架优化
一、根据内存大小,配置服务器跑多实例
二、主从复制采用mixed模式,尽可能不要跨机房同步,若要跨机房,尽可能采用远程写,本地读
三、按期检查、修复主从复制的数据差别
四、业务拆分,搜索功能不使用MySQL数据库执行;某些高并发,安全性通常的业务使用nosql,如:memcache、 redis等
五、数据库前端加cache,如memcache,用于用户登陆,商品查询
六、动态数据静态化,整个文件静态化,页面片断静态化
七、数据库集群读写分离,一主多从,经过dbproxy进行集群读写分离
八、单表超过800万,拆库拆表,如人工将(登陆、商品、订单)拆表拆库
九、选择从库备份,而且对数据库进行分表分库备份
d:MySQL数据库层面优化
一、优化my.cnf参数
二、优化库表设计,包括字符集、字符串长度、建立短索引、多用复合索引;
三、SQL语句优化,减小慢语句数量;
e:数据库管理流程、制度优化
一、人的流程:开发—>核心运维/DBA
二、测试流程:内网 IDC测试线上执行
三、客户端管理,PHPMYADMIN
f:MySQL数据库安全优化
一、数据库禁止设置外网
二、数据库文件权限优化;
三、受权用户权限限制,尽可能专库专用户
四、限制开发对生产库的操做权限
五、防止SQL语句注入前端