nysql数据库优化

硬件优化

软件优化

my.cnf参数优化,命令监控show global status\G

                             调优工具mysqlreport

sql语句优化

索引的优化

                    白名单机制--百度,就是让一些不规范的语句执行查询前经过DBA的确认,不通过不给执行,项目开发时让DBA参与,减少上线后的慢sql查询数量

                    抓出慢SQL,配置my.cnf

                    long_query_time=2

                    log-slow-queries=/data/slow-log.log

                    按天轮询slow-log.log

                    慢查询日志分析工具:mysqldumpslow   mysqlsla    myprofi   mysql-explain-slow-log   mysqllogfilter

                    每天晚上0点定时分析慢查询,发到开发,DBA,CTO邮箱,由DBA给出优化建议,开发确认后,DBA线上执行

大的复杂的SQL语句拆分成多个小的语句

数据库是存储数据的地方,不是计算数据的地方,所以对数据的计算,应用类处理,都要在前端解决,禁止在数据库上处理

搜索功能,like%查询名字%没法用索引,一般不要用MySQL数据库,用memcached或者redis

架构优化

  业务拆分:like%查询名字%没法用索引,一般不要用MySQL数据库

  数据库前端加cache:用memcached或者redis,例如:用户登录,商品查询

  某些业务使用nosql持久化存储,redis,ttserver,例如:粉丝关注,好友关系等

  动态数据静态化,整个文件静态化,页面片段静态化

  数据库集群与读写分离,一主多从,通过程序或者dbproxy进行集群读写分离

  单表超过2千万,拆库拆表,人工拆表拆库(登录,商品,订单) 

流程,制度,安全优化

  任何一次人为数据库记录更新,都要走一个流程

  人的流程:开发---核心开发--运维或DBA

   测试流程:内网测试--IDC测试

          

posted on 2019-03-04 11:22  一直用这名字  阅读(161)  评论(0编辑  收藏  举报

导航