2022-07-15 21:57阅读: 41评论: 0推荐: 0

sql优化-0-SQL优化指导原则

SQL优化:大量数据时使用

哪些方面进行优化:

  • 索引类型:普通索引、复合索引、全文索引等,每个类型索引的特性是不一致的,因此使用索引前
    需要考虑,当前的表结构 最佳适用于那个类型索引。
  • 缓存:数据库缓存、缓存中间件Redis
  • 锁机制:排它锁、共享锁;读锁、写锁、行锁、页锁等各种类型的锁。在加锁前,需要考虑当前
    业务,更加适用于哪些锁。
  • 表的设计:三大范式可以提高规范性,但也会降低效率,因此需要权衡使用。
  • 架构设计:读写分离(避免对全部数据进行加锁,而只是对少量的写操作加锁),9.5万读 单独放
    到 读数据库,0.5万写 单独放在 写数据库中。这样一来,就只需要对0.5万的写操作进行加锁,用
    于防止并发冲突,而不需要对大量的9.5万读操作进行加锁。分库分表
  • 细节:char varchar varchar2,int,mediumint,对于相近的类型,需要权衡 哪个更合适。

一般在架构设计时,都需要进行"权衡"。到底使用哪种,必须根据经验、性能、压力测试。

基于oracle

  • 不要让oracle做的太多,jdbc-oracle(把一些复杂操作交给iava去做);让sql语句尽可能的简单,避免一些复杂查询
  • 尽量减少访问次数
  • 避免使用"*",只挑选需要的字段查询
    select * from student;
    select id,name,age from student;
  • 避免使用一些消耗资源的操作:distinct\union\minus\intersect\order by
    例如可以使用union all替代union
    使用exists替代distinct
  • 避免索引失效
    避免在where,后面使用函数、计算、Not、is null、自动转换
    例如,不要:select ... from emp where sal>2500*2 (这应该是sal*2 > 5000 才会索引失效) | where sal is null;select ... from emp where sal ='123'
    如果sal有索引,则以上写法都会使sal索引失效

本文作者:jiyuchen1

本文链接:https://www.cnblogs.com/jiyuchen1/p/16482893.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   姬雨晨  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起