最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年08月09日 11:42:24   作者:來(lái)日可期0726  
在實(shí)際開(kāi)發(fā)中可能會(huì)生成uuid作為主鍵那么疑問(wèn)來(lái)了,到底MySQL 主鍵使用數(shù)字還是uuid查詢快呢?下面小編給大家?guī)?lái)實(shí)例代碼給大家詳細(xì)介紹,感興趣的朋友跟隨小編一起看看吧

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

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

1.首先我們先創(chuàng)建一個(gè)表,用存儲(chǔ)過(guò)程生成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ǔ)過(guò)程:

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.接下來(lái)繼續(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ǔ)過(guò)程并生成數(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ù)字作為主鍵它的查詢效率相差的并沒(méi)有想象中的大,幾乎可以忽略不記 只有key_len有些差別。

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

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

相關(guān)文章

  • MySQL5.7.03 更換高版本到MySQL 5.7.17安裝過(guò)程及發(fā)現(xiàn)問(wèn)題解決方案

    MySQL5.7.03 更換高版本到MySQL 5.7.17安裝過(guò)程及發(fā)現(xiàn)問(wèn)題解決方案

    這篇文章主要介紹了MySQL5.7.03 更換高版本到MySQL 5.7.17安裝過(guò)程及發(fā)現(xiàn)問(wèn)題解決方案,需要的朋友可以參考下
    2017-08-08
  • MySQL分區(qū)表的局限和限制詳解

    MySQL分區(qū)表的局限和限制詳解

    本文對(duì)Mysql分區(qū)表的局限性做了一些總結(jié),因?yàn)閭€(gè)人能力以及測(cè)試環(huán)境的 原因,有可能有錯(cuò)誤的地方,還請(qǐng)大家看到能及時(shí)指出,當(dāng)然有興趣的朋友可以去官方網(wǎng)站查閱。
    2017-03-03
  • SQL中current_date()函數(shù)的實(shí)現(xiàn)

    SQL中current_date()函數(shù)的實(shí)現(xiàn)

    日期時(shí)間類型的數(shù)據(jù)也是經(jīng)常要用到的,SQL中也提供了一些函數(shù)對(duì)這些數(shù)據(jù)進(jìn)行處理,本文主要介紹了SQL中current_date()函數(shù)的實(shí)現(xiàn),具有一定的參考價(jià)值
    2024-02-02
  • ubuntu下mysql版本升級(jí)到5.7

    ubuntu下mysql版本升級(jí)到5.7

    這篇文章主要為大家詳細(xì)介紹了ubuntu下mysql版本升級(jí)到5.7的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • mysql全連接和oracle全連接查詢、區(qū)別及說(shuō)明

    mysql全連接和oracle全連接查詢、區(qū)別及說(shuō)明

    這篇文章主要介紹了mysql全連接和oracle全連接查詢、區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的方法

    MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的方法

    這篇文章主要介紹了MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Mysql數(shù)據(jù)庫(kù)的優(yōu)化詳解

    Mysql數(shù)據(jù)庫(kù)的優(yōu)化詳解

    這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)的優(yōu)化詳解,查詢優(yōu)化的本質(zhì)是讓數(shù)據(jù)庫(kù)優(yōu)化器為SQL語(yǔ)句選擇最佳的執(zhí)行計(jì)劃,一般來(lái)說(shuō),對(duì)于在線交易處理(OLTP)系統(tǒng)的數(shù)據(jù)庫(kù),減少數(shù)據(jù)庫(kù)磁盤(pán)I/O是SQL語(yǔ)句性能優(yōu)化的首要方法,需要的朋友可以參考下
    2023-07-07
  • MySQL中關(guān)于超鍵和主鍵及候選鍵的區(qū)別

    MySQL中關(guān)于超鍵和主鍵及候選鍵的區(qū)別

    這篇文章主要介紹了MySQL中關(guān)于超鍵和主鍵及候選鍵的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 防止mysql重復(fù)插入記錄的方法

    防止mysql重復(fù)插入記錄的方法

    這篇文章主要為大家詳細(xì)介紹了防止mysql重復(fù)插入記錄的方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Mysql事務(wù)隔離級(jí)別之讀提交詳解

    Mysql事務(wù)隔離級(jí)別之讀提交詳解

    這篇文章主要介紹了Mysql事務(wù)隔離級(jí)別之讀提交詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論

六安市| 英山县| 庄浪县| 陈巴尔虎旗| 鹰潭市| 南汇区| 隆德县| 沂南县| 合江县| 保山市| 温宿县| 宣城市| 辰溪县| 新兴县| 阿城市| 汉川市| 乌苏市| 炉霍县| 调兵山市| 仁怀市| 山东省| 乡城县| 若尔盖县| 怀安县| 涞源县| 宝坻区| 山西省| 工布江达县| 宁国市| 高碑店市| 西藏| 天全县| 怀化市| 濮阳市| 奉贤区| 汉中市| 元阳县| 德安县| 农安县| 汝阳县| 西城区|