波兰与白俄罗斯的边境将于北京时间9月25日6时起重新开放。时隔13天,抵达波兰境内枢纽的中欧班列即将恢复运行。 据央视新闻报道,9月24日,白俄罗斯国...
2025-09-25 8
来 源:SQL数据库
为什么别人的查询只要几秒,而你的查询语句少则十多秒,多则十几分钟甚至几个小时?与你的查询语句是否高效有很大关系。
今天我们来看看如何写出比较高效的查询语句。
1、尽量不要使用NULL当默认值
在有索引的列上如果存在NULL值会使得索引失效,降低查询速度,该如何优化呢?例如:
我们可以将NULL的值设置成0或其他固定数值,这样保证索引能够继续有效。
这是改写后的查询语句,效率会比上面的快很多。
2、尽量不要在WHERE条件语句中使用!=或<>
在WHERE语句中使用!=或<>也会使得索引失效,进而进行全表扫描,这样就会花费较长时间了。
3、应尽量避免在 WHERE子句中使用 OR
遇到有OR的情况,我们可以将OR使用UNION ALL来进行改写
例如:
可以改写成:
4、IN和NOT IN也要慎用
遇到连续确切值的时候 ,我们可以使用BETWEEN AND来进行优化
例如:
可以改写成:
5、子查询中的IN可以使用EXISTS来代替
子查询中经常会使用到IN,如果换成EXISTS做关联查询会更快。
例如:
可以改写成:
虽然代码量可能比上面的多一点,但是在使用效果上会优于上面的查询语句。
6、模糊匹配尽量使用前缀匹配
在进行模糊查询,使用LIKE时尽量使用前缀匹配,这样会走索引,减少查询时间。
展开全文
例如:
或者
均不会走索引,只有当如下情况:
才会走索引。
上述这些都是平常经常会遇到的,就直接告诉大家怎么操作了,具体可以下去做试验尝试一下!
- END -
爱数据福利大放送
回复【1017】即可领取
《MySQL基础查询手册》
《目录》
《部分内容》
相关文章
波兰与白俄罗斯的边境将于北京时间9月25日6时起重新开放。时隔13天,抵达波兰境内枢纽的中欧班列即将恢复运行。 据央视新闻报道,9月24日,白俄罗斯国...
2025-09-25 8
“我是不是被骗了?” 男子邮寄黄金“投资”后 匆忙跑进派出所向民警求证 民警:这就是诈骗! “警察同志,两天前 我把100克黄金寄到广东投资 会不会有...
2025-09-25 10
当地时间2025年9月21日,俄罗斯,乌克兰航空频道也关注了,在长春航展上中国解放军歼-6无人机。对于中国解放军歼-6无人机展示出来的,令人恐惧的火力...
2025-09-25 7
伊朗,在经历了惨痛的伊以战争后,终于意识到防空能力的重要性。近期有消息称,伊朗正在与中国和俄罗斯进行全方位合作,试图通过引进先进武器来弥补自身防空力量...
2025-09-25 6
北京时间9月25日凌晨2点45分,2025-2026赛季英格兰联赛杯第3轮展开一场焦点战役,曼城前往客场对阵哈德斯菲尔德。上半场,小将穆卡萨做球,福登...
2025-09-25 8
9月23日,西贝公众号发布文章《7岁的毛毛:我以为我再也吃不到西贝了》。 文章以7岁儿童毛毛的视角,讲述了毛毛从2岁起开始吃西贝,妈妈因为最近的新闻不...
2025-09-25 7
这两天在美国纽约举行的联合国大会备受国际社会的关注,作为东道主的特朗普,自然不会放弃这样一个可以“好好表现”的机会,于是我们就看到他在联大会议上,把到...
2025-09-25 8
“我上的不是西北工业大学吗?怎么图书馆上印的是西安工业大学的图书馆?”近日,有西北工业大学的本科新生发现,自己刚发的学生证封面上印的是西安工业大学的图...
2025-09-25 8
发表评论