zoukankan      html  css  js  c++  java
  • 数据库优化分层思想

    可以分别从SQL语句层面、SQL配置层面、SQL架构层面和业务层面来优化。

     SQL 语句层面

      1. 调优策略

    	 	*号的处理(只是提取必要字段,减少流量)
    	 	大SQL(拆分、逐步缩小结果集)
    	 	合理的索引(where字句后面的条件)
    	 	类型转换(“符号的使用)
    	 	尽量不要用范围查询,或者缩小检索范围(e.g.程序逻辑 update)
    

      2. 哪些SQL需要调优

    		找开发
    		查看程序日志(e.g.接口 -> 后台服务)
    		查看慢查询日志
    		查看统计:最多调用、最占流量
    

    SQL配置层面

      1. 哪些配置需要关注

    		Query_Cache
    		max_connections
    		wait_timeout
    		lock
    

    SQL架构层面

        

    		主从复制(读写分离)
    			考虑数据一致性
    		分库分表(UID倒数几位取模)
    			映射关系
    			是否均匀
    		负载均衡
    			LVS、F5、Nginx
    		多级缓存
    			redis
    

    业务层面的思考

    	表字段拆分
    		1.某些列字段不常用
    		2.text(适用key-value)
    			拆分出来,新建一个详情表
    			方便运维(DDL)、便于缓存、提高查询性能
    	冷数据备份
    		把每年历史数据导出去,缩小检索范围
    
    	程序逻辑的处理
    		UPdate全表的例子
    

      

      

  • 相关阅读:
    BZOJ4152: [AMPPZ2014]The Captain
    BZOJ4025: 二分图
    BZOJ1453: [Wc]Dface双面棋盘
    BZOJ3238: [Ahoi2013]差异
    BZOJ3165: [Heoi2013]Segment
    BZOJ4556: [Tjoi2016&Heoi2016]字符串
    BZOJ2668: [cqoi2012]交换棋子
    UVa-10652 包装木板
    HDU1599-Find the mincost route
    HDU-3339 IN ACTION(Dijkstra +01背包)
  • 原文地址:https://www.cnblogs.com/evilxr/p/4001240.html
Copyright © 2011-2022 走看看