【无标题】Mysql 优化面试题

常见的SQL优化面试题

1.在表中建立索引,优先考虑 where group by 使用到的字段

2.查询时尽量避免使用select * ,只查询需要用到的字段

3.避免在where子句中使用关键字两边都是%的模糊查询,尽量在关键字后使用模糊查询

4.尽量避免在where子句中使用IN 和NOT IN
优化:能使用between就不用in
在子查询中使用exists 子句

5.尽量避免使用or,优化:可以用union代替or

6.尽量避免在where子句中使用表达式操作

7.尽量避免在where子句中使用null判断,优化:给字段添加默认值,对默认值判断

8.尽量不要在where条件中等号的左侧进行表达式.函数操作

9.尽量避免使用where 1=1,优化:用代码拼接sql,需要where的地方加where,需要and的地方加and

10.尽量避免大事务操作,提高并发能力

11.一个表中的索引最好不要超过6个

12.应尽量避免在where子句中使用 != 或 <>

13.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个
字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字
段顺序与索引顺序相一致。

14.Update 语句,如果只更改1、2个字段,不要Update全部字段,否则频繁调用会引起明显
的性能消耗,同时带来大量日志。

15.对于多张大数据量(这里几百条就算大了)的表JOIN,要先分页再JOIN,否则逻辑读会
很高,性能很差。

16.尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连
接的性能,并会增加存储开销。这是因为引擎在处理查询和连 接时会逐个比较字符串中每一
个字符,而对于数字型而言只需要比较一次就够了。

17.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该
考虑改写。游标的一个常见用途就是保存查询结果,以便以后使用。游标的结果集是由SELECT语句产
生,如果处理过程需要重复使用一个记录集,那么创建一次游标而重复使用若干次,比重复
查询数据库要快的多。

18.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值