加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

怎样去写一手好SQL

发布时间:2019-10-25 09:57:15 所属栏目:编程 来源:今头日条一小马奔腾
导读:MySQL机能 数据表计划 索引优化 SQL优化 其他数据库 博主认真的项目首要回收阿里云数据库MySQL,最近频仍呈现慢SQL告警,执行时刻最长的竟然高达5分钟。导出日记后说明,首要缘故起因竟然是没有掷中索引和没有分页处理赏罚。其拭魅这长短常初级的错误,我不禁后背一

join的实现是回收Nested Loop Join算法,就是通过驱动表的功效集作为基本数据,通过该结数据作为过滤前提到下一个表中轮回查询数据,然后归并功效。假若有多个join,则将前面的功效集作为轮回数据,再次到后一个表中查询数据。

驱动表和被驱动表尽也许增进查询前提,满意ON的前提而罕用Where,用小功效集驱动大功效集。

被驱动表的join字段上加上索引,无法成立索引的时辰,配置足够的Join Buffer Size。

榨取join毗连三个以上的表,实行增进冗余字段。

Limit优化

limit用于分页查询时越今后翻机能越差,办理的原则:缩小扫描范畴,如下所示:

  1. select * from orders order by id desc limit 100000,10 

耗时0.4秒

  1. select * from orders order by id desc limit 1000000,10 

耗时5.2秒

先筛选出ID缩小查询范畴,写法如下:

  1. select * from orders where id > (select id from orders order by id desc limit 1000000, 1) order by id desc limit 0,10 

耗时0.5秒

假如查询前提仅有主键ID,写法如下:

  1. select id from orders where id between 1000000 and 1000010 order by id desc  

耗时0.3秒

假如以上方案依然很慢呢?只好用游标了,感乐趣的伴侣阅读JDBC行使游标实现分页查询的要领

其他数据库

作为一名后端开拓职员,务必能干作为存储焦点的MySQL或SQL Server,也要起劲存眷NoSQL数据库,他们已经足够成熟并被普及回收,能办理特定场景下的机能瓶颈。

怎样去写一手好SQL
怎样去写一手好SQL

【编辑保举】

  1. 半小时MySQL基本入门,值得保藏
  2. SQL查询语句老是先执行SELECT?你们都错了
  3. MySQL的又一神器-锁,MySQL口试必备
  4. MySQL尝试之差异字符集数据库迁徙步调演示
  5. 看这些MySQL的重要常识点,吃透它
【责任编辑:未丽燕 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读