精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL查詢,是 join性能好,還是in一下更快呢?

數(shù)據(jù)庫 MySQL
當(dāng)數(shù)據(jù)量小時(shí),可能一頁數(shù)據(jù)就夠放的時(shí)候,join的成本和速度都更好。數(shù)據(jù)量大的時(shí)候確實(shí)分開查的成本更低,但是由于數(shù)據(jù)量大,造成循環(huán)的成本更多,代碼執(zhí)行的時(shí)間也就越長。

先總結(jié):

  1. 數(shù)據(jù)量小的時(shí)候,用join更劃算
  2. 數(shù)據(jù)量大的時(shí)候,join的成本更高,但相對來說join的速度會更快
  3. 數(shù)據(jù)量過大的時(shí)候,in的數(shù)據(jù)量過多,會有無法執(zhí)行SQL的問題,待解決

事情是這樣的,在一次代碼review的時(shí)候有同學(xué)提出說,不要寫join,join耗性能還是慢來著,當(dāng)時(shí)也是真的沒有多想,那就寫in好了,最近發(fā)現(xiàn)in的數(shù)據(jù)量過大的時(shí)候會導(dǎo)致sql慢,甚至sql太長,直接報(bào)錯了。

這次來淺究一下,到底是in好還是join好,僅目前認(rèn)知探尋,有不對之處歡迎指正

以下實(shí)驗(yàn)僅在本機(jī)電腦試驗(yàn)。

一、表結(jié)構(gòu)

1、用戶表

圖片圖片

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '姓名',
  `gender` smallint DEFAULT NULL COMMENT '性別',
  `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '手機(jī)號',
  `create_time` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
  PRIMARY KEY (`id`),
  UNIQUE KEY `mobile` (`mobile`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1005 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

2、訂單表

圖片圖片

CREATE TABLE `order` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `price` decimal(18,2) NOT NULL,
  `user_id` int NOT NULL,
  `product_id` int NOT NULL,
  `status` smallint NOT NULL DEFAULT '0' COMMENT '訂單狀態(tài)',
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  KEY `product_id` (`product_id`)
) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

二、先來試少量數(shù)據(jù)的情況

用戶表插一千條隨機(jī)生成的數(shù)據(jù),訂單表插一百條隨機(jī)數(shù)據(jù)

查下所有的訂單以及訂單對應(yīng)的用戶

下面從三個(gè)維度來看

多表連接查詢成本 = 一次驅(qū)動表成本 + 從驅(qū)動表查出的記錄數(shù) * 一次被驅(qū)動表的成本

1、join

JOIN:

explain format=json select order.id, price, user.`name` from `order` join user on order.user_id = user.id;

子查詢:

select order.id,price,user.`name` from `order`,user where user_id=user.id;

圖片圖片

2、分開查

select `id`,price,user_id from `order`;

圖片圖片

select name from user where id in (8, 11, 20, 32, 49, 58, 64, 67, 97, 105, 113, 118, 129, 173, 179, 181, 210, 213, 215, 216, 224, 243, 244, 251, 280, 309, 319, 321, 336, 342, 344, 349, 353, 358, 363, 367, 374, 377, 380, 417, 418, 420, 435, 447, 449, 452, 454, 459, 461, 472, 480, 487, 498, 499, 515, 525, 525, 531, 564, 566, 580, 584, 586, 592, 595, 610, 633, 635, 640, 652, 658, 668, 674, 685, 687, 701, 718, 720, 733, 739, 745, 751, 758, 770, 771, 780, 806, 834, 841, 856, 856, 857, 858, 882, 934, 942, 983, 989, 994, 995);  \[in的是order查出來的所有用戶id\]

圖片圖片

如此看來,分開查和join查的成本并沒有相差許多

3、代碼層面

主要用php原生寫了腳本,用ab進(jìn)行10個(gè)同時(shí)的請求,看下時(shí)間,進(jìn)行比較

ab -n 100 -c 10

in

$mysqli = new mysqli('127.0.0.1', 'root', 'root', 'test');
 if ($mysqli->connect_error) {
     die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
 }

 $result = $mysqli->query('select `id`,price,user_id from `order`');
 $orders = $result->fetch_all(MYSQLI_ASSOC);

 $userIds = implode(',', array_column($orders, 'user_id')); // 獲取訂單中的用戶id
 $result = $mysqli->query("select `id`,`name` from `user` where id in ({$userIds})");
 $users = $result->fetch_all(MYSQLI_ASSOC);// 獲取這些用戶的姓名

 // 將id做數(shù)組鍵
 $userRes = [];
 foreach ($users as $user) {
     $userRes[$user['id']] = $user['name'];
 }

 $res = [];
 // 整合數(shù)據(jù)
 foreach ($orders as $order) {
     $current = [];
     $current['id'] = $order['id'];
     $current['price'] = $order['price'];
     $current['name'] = $userRes[$order['user_id']] ?: '';
     $res[] = $current;
 }
 var_dump($res);

 // 關(guān)閉mysql連接

 $mysqli->close();

圖片圖片

join

$mysqli = new mysqli('127.0.0.1', 'root', 'root', 'test');
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}

$result = $mysqli->query('select order.id, price, user.`name` from `order` join user on order.user_id = user.id;');
$orders = $result->fetch_all(MYSQLI_ASSOC);

var_dump($orders);
$mysqli->close();

圖片圖片

看時(shí)間的話,明顯join更快一些

三、試下多一些數(shù)據(jù)的情況

user表現(xiàn)在10000條數(shù)據(jù),order表10000條,試下

1、join

圖片圖片

2、分開

order

圖片圖片

user

圖片圖片

3、代碼層面

in

圖片圖片

join

圖片圖片

三、試下多一些數(shù)據(jù)的情況

隨機(jī)插入后user表十萬條數(shù)據(jù),order表一百萬條試下

1、join

圖片圖片

2、分開

order

圖片圖片

user

order查出來的結(jié)果過長了,,,

3、代碼層面

in

圖片圖片

join

圖片圖片

四、到底怎么才能更好

注:對于本機(jī)來說100000條數(shù)據(jù)不少了,更大的數(shù)據(jù)量害怕電腦卡死

總的來說,當(dāng)數(shù)據(jù)量小時(shí),可能一頁數(shù)據(jù)就夠放的時(shí)候,join的成本和速度都更好。數(shù)據(jù)量大的時(shí)候確實(shí)分開查的成本更低,但是由于數(shù)據(jù)量大,造成循環(huán)的成本更多,代碼執(zhí)行的時(shí)間也就越長。

實(shí)驗(yàn)過程中發(fā)現(xiàn),當(dāng)in的數(shù)據(jù)量過大的時(shí)候,sql過長會無法執(zhí)行,可能還要拆開多條sql進(jìn)行查詢,這樣的查詢成本和時(shí)間一定也會更長,而且如果有分頁的需求的話,也無法滿足。。。

感覺這兩個(gè)方法都不是太好,各位小伙伴,有沒有更好的方法呢?

責(zé)任編輯:武曉燕 來源: 架構(gòu)精進(jìn)之路
相關(guān)推薦

2023-11-16 12:34:00

MySQLjoin

2018-08-20 15:00:32

Linux深度操作系統(tǒng)發(fā)行版

2021-11-09 08:57:13

元宇宙VR平行時(shí)空

2021-08-10 11:09:06

Linux壓縮神器命令

2021-04-27 07:52:18

SQLNULLOR

2018-10-09 15:26:19

JavaPython語言

2018-09-26 14:17:00

編程語言JavaPython

2023-06-20 12:02:39

WhileFor(;;)

2022-05-05 09:31:58

JOIN數(shù)據(jù)庫

2011-04-14 09:42:06

DataReaderDataSet

2011-10-12 11:07:12

iCloudiOS5蘋果

2020-04-06 14:50:43

MySQLSQL數(shù)據(jù)庫

2024-09-03 10:56:49

線程AQS

2023-08-18 20:50:22

2025-01-15 08:05:06

MySQLLEFT JOIN數(shù)據(jù)庫

2016-07-08 14:26:55

云計(jì)算

2023-06-05 14:14:21

騰訊索引面試

2016-12-06 09:12:07

Java程序員

2025-03-10 07:05:07

2020-09-10 18:47:54

區(qū)塊鏈
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

亚洲国产精品va在线看黑人| 一区二区三区欧美久久| 18性欧美xxxⅹ性满足| 91成年人网站| 97精品资源在线观看| 一区二区三区丝袜| 欧美大香线蕉线伊人久久国产精品| 伊人中文字幕在线观看| 91麻豆国产自产在线观看亚洲| 日韩欧美国产成人一区二区| 国产在线青青草| 黄色精品免费看| 久久亚洲一级片| 91在线视频一区| www亚洲视频| 欧美成人69av| 国产一区二区三区久久精品| 9.1在线观看免费| 日韩在线观看不卡| 亚洲图片欧美一区| 亚洲最新在线| 你懂的在线免费观看| 精品不卡一区二区三区| 动漫美女无遮挡免费| 岛国在线视频网站| 国产精品人人做人人爽人人添| 成人黄色片视频网站| 五月婷婷激情五月| 激情综合久久| 久久国产精品久久久久| 欧美大波大乳巨大乳| 97成人在线| 欧美一区二区在线观看| 我要看一级黄色大片| 岛国av免费在线观看| 亚洲女同ⅹxx女同tv| 天天好比中文综合网| 天堂在线观看视频| 国产高清亚洲一区| 国产美女主播一区| 69亚洲精品久久久蜜桃小说| 国内精品亚洲| 欧美理论片在线观看| 国产午夜精品理论片在线| heyzo久久| 亚洲精品综合精品自拍| 亚洲一区二区三区黄色| 亚洲三区欧美一区国产二区| 3d动漫精品啪啪一区二区竹菊| 国产a视频免费观看| 中文在线8资源库| 午夜久久电影网| 欧美黄网在线观看| 日本无删减在线| 亚洲免费观看高清完整版在线 | www亚洲成人| 亚洲第一会所| 欧美私人免费视频| 亚洲色图久久久| av免费在线一区| 欧美视频日韩视频在线观看| 妺妺窝人体色www在线观看| 欧美天堂视频| 日本高清不卡一区| 热久久精品免费视频| 日韩欧美一区二区三区在线观看| 色婷婷亚洲婷婷| 亚洲xxxx2d动漫1| 国产情侣一区二区三区| 欧美精品久久一区二区三区| 婷婷激情小说网| 日本一区二区乱| 精品第一国产综合精品aⅴ| 无码人妻一区二区三区精品视频| 激情小说一区| 亚洲午夜精品久久久久久久久久久久| 一级黄色性视频| 91亚洲成人| 欧美第一黄色网| 国产情侣在线视频| 日韩精品欧美精品| 国产一区欧美二区三区| 国产极品久久久| 99精品视频一区二区| 青青草国产精品| 二区三区四区高清视频在线观看| 亚洲一区精品在线| 久久久久久久久久久视频| 精品免费av一区二区三区| 欧美偷拍一区二区| 中文字幕一二三区| 日韩电影不卡一区| 日韩中文字幕免费| 日本一级片免费看| 蜜乳av一区二区三区| 91久久国产综合久久蜜月精品| 少妇人妻精品一区二区三区| 国产日韩亚洲欧美综合| 亚洲国产精品女人| 午夜伦理福利在线| 3d动漫精品啪啪1区2区免费 | 北条麻妃一区二区三区在线观看 | 最新亚洲激情| 国产福利精品在线| 精品国产伦一区二区三区| 97超碰欧美中文字幕| 亚洲欧美电影在线观看| 青草在线视频| 在线观看av一区二区| 中文字幕视频观看| 日韩一区二区中文| 4438全国成人免费| 国产视频一区二区三区四区五区| 99re热这里只有精品视频| 在线成人av电影| 亚洲同志男男gay1069网站| 欧美久久久久中文字幕| 亚洲综合色一区| 欧美区日韩区| 国产日韩欧美日韩大片| 色就是色亚洲色图| 一区2区3区在线看| 人人干人人干人人| 国产免费久久| 91超碰caoporn97人人| 亚洲国产成人精品一区二区三区| 国产精品免费aⅴ片在线观看| 国产精品秘入口18禁麻豆免会员| 无码国模国产在线观看| 精品国产依人香蕉在线精品| 国产成人a v| 久久你懂得1024| 人妻无码久久一区二区三区免费| 高清一区二区中文字幕| 中文字幕在线精品| 国产99久久久久久免费看| 99精品偷自拍| 亚洲人精品午夜射精日韩 | 国产免费嫩草影院| 久久久久久网| 久久综合给合久久狠狠色| 少女频道在线观看免费播放电视剧| 欧美老人xxxx18| 国产一区在线观看免费| 日韩成人精品视频| 欧美日韩在线一区二区三区| 欧美激情护士| 日韩av在线播放资源| 中文字幕在线字幕中文| av亚洲精华国产精华精华| 国产青草视频在线观看| 视频一区中文字幕精品| 色综合久久悠悠| 99久久精品无免国产免费| 亚洲色图制服诱惑| 亚洲在线观看网站| 欧美激情四色| 成人激情直播| segui88久久综合| 亚洲国产精品久久久| 国产成人在线观看网站| 久久综合久久久久88| 国产精品亚洲a| 欧美日韩在线网站| 国产精品视频一区国模私拍 | 免费看涩涩视频| 欧美好骚综合网| 97se国产在线视频| 国产调教在线| 在线观看久久av| 国产精品熟女久久久久久| 亚洲啪啪综合av一区二区三区| 91蝌蚪视频在线| 在线看片成人| 日本一区不卡| 99久久久国产| 国产做受高潮69| 邻居大乳一区二区三区| 欧美日韩国产一二三| 欧美成人国产精品高潮| 99视频精品免费视频| 亚洲高清在线免费观看| 亚洲精品成人| 精品伦精品一区二区三区视频| 日本少妇一区| 久久99久久99精品中文字幕| 亚洲欧洲视频在线观看| 欧美日韩一区二区在线视频| 色欲人妻综合网| 91麻豆精品在线观看| 福利片一区二区三区| 亚洲国产精品一区制服丝袜| 日韩在线导航| 亚洲天堂av资源在线观看| 日本久久精品视频| av在线免费网站| 亚洲欧美福利视频| 国产黄色美女视频| 欧美偷拍一区二区| 黄色片视频网站| 亚洲欧洲精品一区二区三区不卡| 久久性爱视频网站| 精品一区二区日韩| 欧美日韩在线不卡视频| 欧美在线视屏| 五月天亚洲综合| 另类ts人妖一区二区三区| 国产在线播放不卡| 性感女国产在线| 欧美丰满少妇xxxx| 91在线视频| 国产丝袜一区视频在线观看| 99国产精品久久久久久久成人| 色哟哟国产精品| 久久亚洲精品大全| 亚洲天堂精品视频| 国产99在线 | 亚洲| 99在线热播精品免费| 午夜福利123| 蜜桃精品视频在线| 日韩一级免费在线观看| 1000部精品久久久久久久久| 国产免费xxx| 久久精品国产大片免费观看| 欧美日韩亚洲综合一区二区三区激情在线 | 一区二区三区视频免费在线观看| 中文字幕在线播出| 亚洲一区二区三区精品在线| 黄色裸体一级片| 91麻豆免费在线观看| 欧美一区二区三区影院| 蜜桃av噜噜一区二区三区小说| 免费黄色福利视频| 亚洲国产三级| 久久精品无码中文字幕| 中文精品久久| 在线免费观看一区二区三区| 精品国产网站| 日韩精品国内| 国产免费播放一区二区| 欧美激情一区二区三区在线视频| 加勒比色老久久爱综合网| 99国内精品久久久久久久软件| 欧美视频二区欧美影视| 亚洲free性xxxx护士hd| 国产成人免费视频网站视频社区| 国产精品免费视频xxxx| 日本在线中文字幕一区二区三区| 国产91在线播放精品91| 日韩成人av电影| 国产精品久久久久久久久影视 | 69国产精品成人在线播放| 丁香高清在线观看完整电影视频 | 91国内外精品自在线播放| 国产精品久久久久久久久借妻| 草民电影神马电影一区二区| 国产精品久久久久久久天堂| 97欧美成人| 国产综合久久久久| 国产精品va视频| 国产高清在线一区| 欧美1区二区| 区一区二区三区中文字幕| 欧美偷拍自拍| 中文字幕一区二区三区精彩视频| 久久精品青草| 无码熟妇人妻av在线电影| 亚洲精品综合| 妺妺窝人体色www在线观看| 久久97超碰国产精品超碰| 五月激情五月婷婷| 国产盗摄一区二区三区| 久久人人爽人人人人片| 国产日韩欧美综合在线| 日韩一区二区不卡视频| 亚洲午夜成aⅴ人片| www.久久精品视频| 欧美日韩色综合| 精品国精品国产自在久不卡| 亚洲第一区中文字幕| 精品欧美不卡一区二区在线观看| 中文字幕最新精品| 国产一线二线在线观看| 热久久这里只有精品| 久久精品超碰| 国产伦理一区二区三区| 国产99精品| 中文字幕乱码免费| 亚洲伦理一区| 亚洲欧洲日本精品| 成人app下载| 久久午夜精品视频| 午夜伊人狠狠久久| 一区二区自拍偷拍| 亚洲缚视频在线观看| 亚洲天天影视| 51久久精品夜色国产麻豆| 亚洲黑人在线| 欧美精品一区二区三区在线看午夜 | 久久午夜无码鲁丝片午夜精品| 色先锋资源久久综合| 精品国产av鲁一鲁一区| 国产亚洲欧洲黄色| 波多野结依一区| 成人福利网站在线观看11| 欧美午夜18电影| 国产人妻人伦精品| 青青草国产精品亚洲专区无| 久久无码人妻一区二区三区| 国产日韩av一区二区| 日韩高清精品免费观看| 91精品欧美久久久久久动漫| 裸体xxxx视频在线| 久久久久久久香蕉网| 2019中文亚洲字幕| 欧美一区二区三区四区在线观看地址 | 亚洲网在线观看| 51av在线| 999热视频| 99久久精品费精品国产| 可以在线看的黄色网址| 成人av午夜影院| 欧美人妻精品一区二区三区| 777奇米成人网| 午夜毛片在线| 国产精品欧美激情| 国产麻豆一区二区三区精品视频| 波多野结衣家庭教师在线| 国产不卡视频一区二区三区| 精品国产大片大片大片| 91久久线看在观草草青青| 天天摸天天干天天操| 欧美激情va永久在线播放| 国产麻豆一区二区三区| 天堂av一区二区| 免费看欧美女人艹b| 加勒比综合在线| 色婷婷av一区二区三区之一色屋| 色欲av永久无码精品无码蜜桃| 九九热精品视频国产| 日韩三级久久| 欧美黑人在线观看| 国产成a人无v码亚洲福利| 久久久久久久久毛片| 日韩三级电影网址| 伦理在线一区| 狠狠色伊人亚洲综合网站色| 亚洲精品三级| 偷拍女澡堂一区二区三区| 色综合久久综合网欧美综合网 | 欧美色图色综合| av中文字幕不卡| 国产又黄又粗又爽| 亚洲欧美视频在线| av成人在线播放| 中文字幕免费在线不卡| 狠狠色综合日日| 免费无遮挡无码永久在线观看视频| 精品国产百合女同互慰| 92久久精品| 蜜桃视频在线观看91| 日本美女视频一区二区| 黄色录像二级片| 亚洲国产精品va在线看黑人| 性欧美1819sex性高清| 亚洲视频欧美在线| 国产一区二区三区蝌蚪| 69精品久久久| 亚洲精品一区中文| 青青久久精品| 欧美一级爱爱视频| 91色在线porny| 中文字幕自拍偷拍| 欧美日本亚洲视频| 首页亚洲中字| 91高清国产视频| 亚洲va国产va欧美va观看| 免费观看成年在线视频网站| 成人a级免费视频| 日韩一区二区免费看| 日本黄色小视频在线观看| 日韩一区二区在线观看视频| 涩涩涩在线视频| 夜夜爽www精品| 成人激情综合网站| 黄色大全在线观看| 欧美高清自拍一区| 美女毛片一区二区三区四区| www.亚洲自拍| 岛国精品视频在线播放| 欧美videos极品另类| 狠狠干一区二区| 精品一区二区久久| 一级黄色大片视频| 久久91精品国产| 精品久久久久中文字幕小说| 巨乳女教师的诱惑| 欧美午夜精品免费| 99爱在线观看| 中文字幕制服丝袜在线|