SQL optimization, database optimization

SQL优化,数据库优化
或者有些面试官会这么问:我这个项目中发现一条sql,然后我感觉他的执行效率很慢,那么我应该从什么步骤入手去解决这个问题呢?

SQL优化,
您说sql执行效率不高是吧?按照我的想法呢,首先,每一个sql都有各自的执行计划,
我会根据该条sql的执行计划,去判断这条sql的执行时间是否在规定的计划内。
如果符合程序呢,有可能就是服务器需要扩容或者内存溢出等其他问题。
如果不符合计划呢,那就是sql的问题了,如果是查询sql呢,我会检查经常查询的字段是否建立了索引,一般情况下,我们会在经常查询,而且不经常更改的字段去建立索引,
比如商品首页,在商品的图片啊,简介啊,名称啊等等这些不经常变更的字段去建立索引。
如果还是不行呢,那就是表结构的问题了,一般情况下,电商平台的数据都是读写分离的,也就是说,经常查询,而且不经常修改的字段,我们会放在一张表中,而这张表呢,一般仅仅提供查询的功能,比如电商平台首页的商品展示,轮播图,等等,这些数据基本上一个月甚至一个季度才有可能更改一次,平时是不怎么进行更新的,但是呢,客户每访问一次,就会进行一次数据库交互,1000个,1W个客户有可能看不出来,但是10W,百万,千万的访问量,就会影响到网站的运行了,随着访问量的增大,查询的压力也会增大,而这时候如果在同张表内进行增删改的操作,就会给数据库服务器造成很大的压力。
所以呢,我们会把查询的数据,也就是经常查询的数据,放在读的库里,吧经常进行增删改的数据,放在写的库里 。这样呢,就会在减轻数据库压力的同时,细化了表结构,既方便了数据维护,又提高了sql 的运行性能。
同时呢,在设计表的时候,可以提前建立一些备用字段,方便日后表的优化。
像一些最简单的,关键字大写啊,避免*号啊这些,都是最基础的,sql问题。注意一下就可以了。以上就是我对sql优化的理解。

有些面试官会问你索引,为什么要建立索引,什么时候建立索引,就参照读写分离那段去说。
经常查询的字段,会去简历索引,建立索引的好处,就是方便更快速的找到需要查询的数据,相当于给数据转换成了链表结构,一个 键对应 一个值,所以查询的效率较快。
但是索引也不是每个字段都可以加的,正是因为建立玩索引的字段,都是以键值对的形式存储的,那么这样对数据 在进行删除操作时就会很麻烦,因为要把该数据对应的键也进行删除操作,这无形之中,就给数据的操作带来了不必要的压力,所以,建立索引要慎重。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值