十三、linux-mysql的mysql的核心优化思想

一、数据库运维管理思想核心

  1.未雨绸缪,不要停留在制度上,而是要实际做出来

  2.亡羊补牢,举一反三,不要好了伤疤忘了疼

  3.完善的框架设计及备份、恢复策略

  4.定期思考,并实战模拟以上策略演练

二.策略优化

     个人感觉不仅仅是数据库,所有的系统层面的都可以通过以下方式进行考虑。

 mysql数据库优化

      硬件优化:优化的是物理机,不是虚拟机,因为数据库是IO密集型的
                     cpu 大公司一台机器8-16颗64位cpu
                     mem 大公司96G-128G  3-4个实例
                     disk  数量越多越好,性能:ssd(高并发 )>sas(普通业务线上)>sata(线下)
                     raid  4块盘 性能:RAID0>RAID10>RAID5>RAID1
                     网卡:多块网卡bond,以及buffer、tcp等的优化。
      软件优化:操作系统:x86_64系统, 软件:mysql编译优化
      my.cnf 的参数的优化:
                     注意:my.cnf里面优化的幅度很小,大部分在sql语句和架构优化
       监控:生产参数是一般情况下参数
      命令监控:show global  status\G;工具:mysqlreport性能调优工具, 自动帮忙分析设置的参数合理不合理
      sql语句的优化
     a.索引的优化
        1) 白名单机制
               首先要抓慢sql,配置my.cnf
               long_query_time=2
               long-slow-queries/data/3306/slow-log.log
               按天轮询:slow-log.log
      2)   慢查询日志分析工具---mysqlsla
      3)   每天晚上0点定时分析慢查询,发到核心开发、DBA分析,及高级运维,cto的邮箱里.
               DBA分析给出建议--》核心开发处理---》DBA线上处理
     b.sql语句的拆分,比如:JOIN连接表
     c.数据库是存储数据的地方,但是不是计算数据的地方。
     d.搜索功能,like '%老男孩%',一般不要用mysql数据库
   架构的优化
         1)业务拆分:搜索功能,like '%老男孩%',一般不要用mysql数据库
         2)数据库前端必须要加cache:例如:memcached
             用户登录,商品查询
        3)业务拆分:某些业务应用使用nosql持久化存储:memachecedb,redis等
             好友关系,粉丝关注等等
       4)动态的数据静态化。真个文件静态化,页面片段静态化。
       5)   数据库集群与读写分离,一主多从,通过程序或者dbproxy进行读写分离
       6)单表超过2000完。拆库拆表
   流程,制度,安全优化
     任何一次人为数据库记录的更新,都要走一个流程:
     a.人的流程:开发--》核心开发--》运维或者DBA
     b.测试流程:内网测试--》IDC测试--》线上执行
     c.客户端管理:phpmy
 

 

posted @ 2019-09-22 10:45  小熊尤里  阅读(283)  评论(0编辑  收藏  举报