数据库优化
来源:互联网 发布:php app接口开发步骤 编辑:程序博客网 时间:2024/06/05 11:18
在平时的工作中,做为一名资深的程序员来说,系统在随着业务量不断的增加,可以之前表的设计已经不能满足的我们,
这时就需要我们对整体系统流程或者数据库这方面进行优化。今天主要是写一下数据库方面的优化:(一般都是在时间和空间上找到平衡点)
一、表结构的优化:
优化点:
1、表设计是否遵循数据库的三范式,把大表拆分成不成的小表(减小空间)
2、针对于某些字段的查询是否数据库表做了适当的冗余(减小时间)
3、数据类型字段尽量用数字类型
4、减小使用text,image类型,读取二进制比较耗时
二、SQL语句的优化:
优化点:
1、根据不同的业务场景,特别是针对查询多,而对修改(插入,更新)操作时效要求不高,不频繁,可以利用索引
提高检索效率。
2、在查询数据中,尽量在where 条件中运用到索引(关联字段创建索引,经常查询字段创建索引)并且条件中尽可能的
排除一些干扰数据
3、在oracle 11之间,sql尽量的用关联查询,而少用子查询(并不绝对),用子查询代码 in 操作,基表放在from 后第一个位置,
,索引条件离放在where 越近越好 等等。(在oralce 11 开始,oracle 作了大量的内部优化,用户不需要关注这些,而是关注oracle
的执行计划)
4、关于分页的优化,尽量可能把基础能锁定的数据先查询出来,并分页拿到最小结果集,之后在云去关联其它的表(这种情况针对于
基础表数据的结果集不受关联表之后的where 条件影响)
三、分区:
针对数据量,在一张表中不段的大量扩张,将有一定特性的数据分配到不同的区域存储(比如:北京地区只关注北京的信息,上海地区只关注上海的信息,就可以把两者数据区分),这样查询效率就可以大大提高
四、分表:
优化点:
1、比如报表之类的数据,如果按每个月,或者每个季度,或者每年,可以根据时间进行分表存储数据。(比如京东最近三个月的订单)--这是针对水平分隔
2、把一个大表经常查询,经常修改的数据放在一张表,不变的数据放入另一张,从而减少操作时锁定的数据(垂直分隔)
五、分离活跃数据:(水平分隔)
将经常活跃的数据,单独存储,可以加快操作。但需要策略判定活跃边界。
六:批量操作:
比如:客户端的批量操作,在数据库中进行验证时,保存或者更新时,可以进行批量操作,把数据放入内存中,进行分批处理,而不
是一次校验就连接查询一次数据库。
七:读写分离:
它的本质是:对数据库进行集群,降低单台服务器的压力,但需要保证一点就是,数据一性性问题。
一般情况下是一台写的服务器(主服务器),多台读取的服务器(从服务器)
- 优化数据库
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 优化数据库
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 优化数据库
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- rest Serialzier 改变字段格式
- JDK中对称加密DES
- Asp.net DataTable to CSV 文件
- git服务器搭建
- Hdu 2026 首字母变大写
- 数据库优化
- HDOJ 5965 扫雷 【DP】
- 【HDU 4248】组合数学 A Famous Stone Collector
- 学习笔记2017.07.08-day6,am-CSS字体
- C++using声明和using指示
- 算法导论15章 动态规划 dynamic programming 复习第二弹 最长公共子序列
- C++运算符的重载
- mvc mvp mvvm 概说
- java 经典多点面试题