人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

淺析MySQL 主鍵使用數(shù)字還是uuid查詢快

發(fā)布日期:2022-02-08 14:16 | 文章來源:源碼中國(guó)

在實(shí)際開發(fā)中mysql的主鍵不能重復(fù),可能會(huì)采用主鍵自增,為了防止主鍵重復(fù)也可能會(huì)采取雪花算法之類的算法保證,這兩種主鍵保存的都是number類型 但是實(shí)際開發(fā)中可能會(huì)生成uuid作為主鍵那么疑問來了,到底哪種主鍵的效率高呢?

下面由測(cè)試來驗(yàn)證:

1.首先我們先創(chuàng)建一個(gè)表,用存儲(chǔ)過程生成100w條數(shù)據(jù)然后分析:

創(chuàng)建表:

CREATE TABLE `my_tables` (
`id` VARCHAR(32) NOT NULL ,
`name` varchar(32) DEFAULT NULL,
`age` int(32) DEFAULT NULL,
`time` varchar(32) DEFAULT NULL,
`pwd` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

創(chuàng)建存儲(chǔ)過程:

DROP PROCEDURE IF EXISTS my_insert;
CREATE PROCEDURE my_insert()
BEGIN
DECLARE n int DEFAULT 1;
loopname:LOOP
INSERT INTO `my_tables`(`name`,`age`,`time`,`pwd`) VALUES ('張三', 18, '0:0:0:0:0:0:0:1', '369');
SET n=n+1;
IF n=1000000 THEN
LEAVE loopname;
END IF;
END LOOP loopname;
END;

生成數(shù)據(jù):

CALL my_insert();

第一種方式采用的主鍵是number類型的

下圖是采用explain分析得出

2.接下來繼續(xù)創(chuàng)建另一張表并生成數(shù)據(jù)

CREATE TABLE `my_tables2` (
`id` VARCHAR(32) NOT NULL ,
`name` varchar(32) DEFAULT NULL,
`age` int(32) DEFAULT NULL,
`time` varchar(32) DEFAULT NULL,
`pwd` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

注意:這張表的主鍵采用的是varchar類型的

創(chuàng)建存儲(chǔ)過程并生成數(shù)據(jù):

DROP PROCEDURE IF EXISTS proc_insert;
DELIMITER $
CREATE PROCEDURE pro_insert2()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i<=1000000 DO
INSERT INTO `my_tables2`(id,`name`,`age`,`time`,`pwd`) VALUES (i,'張三', 18, '0:0:0:0:0:0:0:1', '369');
SET i = i+1;
END WHILE;
END $;
CALL pro_insert2();

下圖是第二種用主鍵查詢的結(jié)果

如果有小伙伴對(duì)explain不太明白的可以去看看博客https://blog.csdn.net/why15732625998/article/details/80388236

前后分析得出 使用uuid或者數(shù)字作為主鍵它的查詢效率相差的并沒有想象中的大,幾乎可以忽略不記 只有key_len有些差別。

key_len:表示索引中使用的字節(jié)數(shù),可通過該列計(jì)算查詢中使用的索引的長(zhǎng)度,在不損失精確性的情況下,長(zhǎng)度越短越好。key_len顯示的值為索引字段的最大可能長(zhǎng)度,并非實(shí)際使用長(zhǎng)度,即key_len是根據(jù)表定義計(jì)算而得,不是通過表內(nèi)檢索出的。

到此這篇關(guān)于淺析MySQL 主鍵使用數(shù)字還是uuid查詢快的文章就介紹到這了,更多相關(guān)mysql主鍵用數(shù)字還是uuid內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

國(guó)外服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部