SQL | 数据库优化

数据库优化

  1. 选择正确的数据库存储引擎
  2. 优化字段的数据类型
  3. 为搜索字段添加索引
  4. 尽量避免使用select *
  5. 使用Enum(实际存储的tinyint)而不是varchar
  6. 尽可能的使用not null
  7. 尽可能固定长度
  8. 关键字大写
  9. 少用子查询
  10. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
  11. 应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描
  12. 应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描
  13. in 和 not in 也要慎用,否则会导致全表扫描
  14. 对于连续的数值,能用 between 就不要用 in
  15. 应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描
  16. 不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引
  17. 不要有超过5个以上的表连接(JOIN)
  18. 尽量避免大事务操作,提高系统并发能力
  19. 在oracle尽量避免使用游标,因为游标的效率较差
  20. 选择合适的数据库引擎(innodb支持事务,支持行锁,支持外键(通常不设置外键,在程序中保持数据的一致性)。myisam不支持事务,支持全文索引,支持表锁,不支持外键,查改速度快。memory数据变化频繁,不需要入库,查改极快)
  21. 创建合适的索引
  22. 读写分离,主数据库用于写,从数据库同步主数据库数据通过负载均衡用户读
  23. 使用缓存,一级缓存,二级缓存,第三方缓存(redis)
  24. 分表(一、垂直分表,二、水平分表1.按时间分表(实效性)2.按区域范围分表(严格在自增的ID)3.hash分表
发布了28 篇原创文章 · 获赞 13 · 访问量 7829

猜你喜欢

转载自blog.csdn.net/y1534414425/article/details/104585854