【数据库】SQL优化

  1. 使用缓存优化查询
    进行多次相同的查询,结果就会放入到缓存中,后续再进行相同的的查询,就直接从缓存中提取,不会到表中提取数据
  2. explain检测SQL语句SQL执行计划
  3. 给搜索字段建立索引where后面的字段建立索引
    但是查询大量数据还是会全表搜索,索引失效,具体原因是MySQL会对查询进行优化,除了主键索引以外其他的都是辅助索引,会二次回表查找,速度更慢,所以自动优化为全表查询(聚簇索引与非聚簇索引
  4. 如果已经知道查询的数据有m条了,可以通过limit m来限制
    这样数据在查询时查到第m条数据就会自动停止,如果不加会在查询到第m条数据后继续查询到遍历所有数据后再返回,浪费时间
  5. 选择正确的MySQL索引InnoDB与MyISAM
  6. 在进行大量delete和insert时进行拆分
    因为进行这种操作的时候会锁住数据库,大量这种SQL语句会导致数据库长期上锁,短时间内所有请求都无法实现
  7. 数据类型尽量使用小的
  8. 尽量不给NULL值,会导致索引失效
  9. id主键每张表都要建立
  10. **避免使用select ***
    查的越多,速度就越慢,数据越多对网络的传输也会负载过重
  11. rand()计算是在cpu上面进行的,尽量避免
  12. 连接两张表的时候,join保证两个字段类型要一致
    否则无法建立索引
  13. 垂直分割
    将拥有较多列的数据拆分成两张表

参考文章
面试官问: 谈谈你对数据库优化的见解(方案)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值