- 尽量不用数据库,使用缓存
- 可以考虑用nosql数据库提高效率
- 使用分布式数据库
- 合理创建表分区表空间
- 使用数据库连接池
- 程序优化,用PreparedStatement进行增删改查
- 减少多表连接数,尽量少的表进行连接
- 程序优化,尽量批量处理,避免逐条处理,减小IO数
- 查询结果不要用*来查询所有字段,要明确指明结果字段
- 表的查询多时,一定建立索引
- 使用合适的索引,例如时间索引、哈希索引、聚簇索引
- 表连接时,尽量用主键进行连接或用唯一索引
- 根据查询条件,建立索引,如果查询条件不止一个时,使用组合索引
- 如果有like话,尽量避免%xxx%两侧都有%的条件,单侧%可以使用索引,多侧不可以
- 在查询条件表达式的左侧尽量不要使用函数,否则索引失效
- 如果查询条件左侧不得不用函数,则建立函数索引
- 建立索引时字段不能有null值
- 条件中与null比较索引无效
- 如果用DDL改动了数据库表字段,需要重建索引,不然索引失效
- SQL的条件表达式,在Oracle中,是按倒序使用索引的
- SQL尽量不要有多余的空格和换行
- 可以使用物化视图提高查询效率
- 对于数据分析可以采用读写分离,读和写分库操作,建立不同索引
- 对于数据量比较大的操作,可以使用新旧数据拆表,保持新数据所在的表数据尽量少
- 如果对新增数据不敏感,可以采用存储过程,把所需要的数据导到临时表,然后对临时表进行操作
数据库优化方面的经验
最新推荐文章于 2022-11-27 17:48:44 发布