美文网首页
面试中经常问到的sql 如何优化

面试中经常问到的sql 如何优化

作者: G先生_海林 | 来源:发表于2018-11-06 11:39 被阅读24次

整理一下方便记忆,面试会中

1.SQL语句全部大写 (所有SQL语句执行时都会转换成大写)

2.避免使用星号 * ,用具体字段替代(使用星号会在查询时增加一个查询列的操作)

3.尽量避免在 where 子句中对字段进行 null 值判断,最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库 (不然会进行全表扫描,影响效率)
-反例:select id from t where num is null
-可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num = 0

4.应尽量避免在 where 子句中使用 != 或 <> ,in 或 not in 操作符 (同上)

5.能用between就不要使用in,或者用exists替换in
-select num from a where num in(select num from b)
用下面的语句替换:select num from a where exists(select 1 from b where num=a.num)

6.尽可能的使用 varchar/nvarchar 代替 char/nchar (节省字段存储空间)

Mysql分页优化

Mysql在使用limit进行分页查询时有明显的缺陷,比如:

SELECT * FROM table ORDER BY id LIMIT x,y;

当x越来越大时,因为会查询出x跳记录然后过滤出需要的y条,查询效率会显著降低,为此,有几下集中解决方案:
1.先查出上一页结束的数据记录

SELECT * FROM table WHERE id>= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10`

2.如果id是连续的,建议使用between

SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;

3.还有一种,可以在查询下一页时把上一页的行id作为参数传递给客户端程序,然后sql就改成了

select * from table where id>3000000 limit 10;

转载自博客
https://blog.csdn.net/m0_37896272/article/details/78177484

相关文章

  • 面试中经常问到的sql 如何优化

    整理一下方便记忆,面试会中 1.SQL语句全部大写 (所有SQL语句执行时都会转换成大写) 2.避免使用星号 * ...

  • 拜托别再问我MySQL性能如何优化了?这篇送你!!!

    前言 此篇文章从大范围讲一下MySQL数据库到底该如何优化?这个问题在面试中时常被问到,今天来总结下。 SQL 优...

  • 浅谈数据库优化

    浅谈数据库优化 在面试的时候经常会被问到数据库如何优化的?面试的时候最担心遇到这种宽泛的问题。如果你直接说:“建索...

  • SQL优化的那些事儿

    熟悉并且进场使用数据库的童鞋们应该都对SQL优化这个知识点不陌生了吧!这个也是我们在技术面试时经常会被面试官问到...

  • sql优化

    sql优化 关于sql优化,面试中经常被问道,由于本人也是小白一枚,请大家对我宽容点下面是我整理的一些sql优化措...

  • MySQL优化

    昨天面试的时候,被问到有关于MySQL的优化方面的知识。回答了一些sql语句方面的优化,以及分表,对于MySQL数...

  • SQL:我为什么慢你心里没数吗?

    SQL 语句执行慢的原因是面试中经常会被问到的,对于服务端开发来说也是必须要关注的问题。 在生产环境中,SQL 执...

  • 从开始慢慢总结优化

    我们在面试中前端优化是经常被问到的,所以我们应该从开始学习的时候就总结一些前端的优化方法:什么是前端优化呢?我们前...

  • 前端优化中的DOM优化

    我们在面试中前端优化是经常被问到的,所以我们应该从开始学习的时候就总结一些前端的优化方法:什么是前端优化呢?我们前...

  • 数据库索引相关

    这类问题可能经常面试会被问到,其实我觉得也是很关键的,如何合理使用索引,可以加快你sql的执行速度,这是非常关键的...

网友评论

      本文标题:面试中经常问到的sql 如何优化

      本文链接:https://www.haomeiwen.com/subject/osoyxqtx.html