站長資訊網
最全最豐富的資訊網站

結合實例分析mysql中or和in的效率

結合實例分析mysql中or和in的效率

mysql中or和in的效率

前言

今天遇到了一個網站卡死的問題,過了幾分鐘就好了,找到了一個定時腳本中有個sql,執行效率很慢,DBA建議將or改為in,效率提升了幾百倍

場景描述

1.兩個表關聯查詢
2.table1 的數據量接近100萬
3.table2 的數據量接近900萬
4.查詢條件中的title字段沒有加索引
5.原始查詢語句

SELECT a.id as id FROM `table1`as a left join table2 as b on a.id=b.id WHERE b.title="衣服" or b.title="褲子" or b.title="帽子" limit 0,100

6.改造后的查詢語句

SELECT a.id as id FROM `table1`as a left join table2 as b on a.id=b.id WHERE b.title IN ("衣服","褲子","帽子") limit 0,100

改造后的效率

原sql的執行時間為5s,更改之后只需要0.01s

原因

查了一下資料,在數據量過百萬,并且條件沒有加索引,or的查詢效率遠遠低于in,or的效率為O(n),而in的效率為O(logn), 當n越大的時候效率相差越明顯。

推薦學習:《mysql視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国内精品久久久久影院蜜芽 | 99久久亚洲综合精品成人网| 久久久久无码精品| 国产精品久久久久久福利| 国产精品午夜小视频观看| 日韩在线观看免费完整版视频| 国产v精品成人免费视频400条| 国产激情精品一区二区三区 | 久久亚洲欧美国产精品| 亚洲精品国产情侣av在线| 亚洲国产成人精品无码久久久久久综合 | 亚洲国产精品第一区二区三区| 在线观看国产精品日韩av| 精品国产一二三产品价格| 亚洲无删减国产精品一区| 少妇亚洲免费精品| 国产精品久久久久久久小说| 日韩中文字幕精品免费一区| 亚洲精品伊人久久久久| 中文字幕日韩精品无码内射| 中文字幕一区精品| 日韩精品无码一区二区三区四区 | 亚洲AV综合永久无码精品天堂| 国产精品视频第一区二区三区| 尹人久久久香蕉精品| 日韩电影免费在线观看中文字幕| 国产精品极品美女自在线观看 | 日韩人妻高清精品专区| 亚洲国产精品精华液| 午夜精品久久久久久影视riav| 国产精品久久久久久搜索| 精品少妇ay一区二区三区| 亚洲精品伊人久久久久| 国产精品吹潮香蕉在线观看| 性欧洲精品videos| 久久久久久人妻一区精品| 99精品在线视频| 亚洲精品在线免费看| 国产福利视精品永久免费| 久久久久99这里有精品10| 久久国产综合精品SWAG蓝导航|