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

簡(jiǎn)單了解mysql存儲(chǔ)字段類型查詢效率

 更新時(shí)間:2020年09月19日 12:06:50   作者:賈樹(shù)丙  
這篇文章主要介紹了簡(jiǎn)單了解mysql存儲(chǔ)字段類型查詢效率,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

檢索性能從快到慢的是(此處是聽(tīng)人說(shuō)的):

  • 第一:tinyint,smallint,mediumint,int,bigint
  • 第二:char,varchar
  • 第三:NULL

解釋(轉(zhuǎn)載):

整數(shù)類型

1、TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT,分別用8,16,24,32,64存

2、整數(shù)都有UNSIGNED可選屬性 (拿tinyint字段來(lái)舉例,unsigned后,字段的取值范圍是0-255,而signed的范圍是-128 - 127。 那么如果我們?cè)诿鞔_不需要負(fù)值存在的情況下,通常是不要設(shè)置signed來(lái)支持負(fù)數(shù)的。)

3、對(duì)于存儲(chǔ)和計(jì)算來(lái)說(shuō)INT(1)和INT(20)是相同的,INT(N)中N只是規(guī)定了一些交互工具來(lái)顯示字符的個(gè)數(shù)

字符類型

char定長(zhǎng),存儲(chǔ)效率不如varchar,對(duì)于短數(shù)據(jù)的查詢優(yōu)于varchar

固定長(zhǎng)度的。比如使用uuid作為主鍵,那用char應(yīng)該更合適。

NULL類型

1、索引NULL列要額外的空間

2、進(jìn)行比較和計(jì)算時(shí)會(huì)對(duì)null值進(jìn)行處理,可能導(dǎo)致索引失效

所以盡量不要使用NULL 類型,多使用整數(shù)類型

另外,時(shí)間日期數(shù)據(jù)類型

1、不要用字符串存儲(chǔ)日期型數(shù)據(jù),浪費(fèi)空間

2、DATE能保存從1001到9999年,精度為秒,他把日期和時(shí)間封裝到格式為YYYYMMDDHHMMSS的整數(shù)中,使用8字節(jié)

3、TIMESTAMP保存了從1970年以來(lái)的秒數(shù),和Unix時(shí)間戳相同,只能保存1970到2038,使用4字節(jié)

4、FROM_UNIXTIME()和UNIX_TIMESTAMP()兩個(gè)函數(shù)轉(zhuǎn)換日期和Unix時(shí)間戳

5、DATE和TIMESTAMP中存的是時(shí)間,但是是哪里的時(shí)間呢???:前者不管哪里,他就是一個(gè)時(shí)間表示(與時(shí)區(qū)無(wú)關(guān)),后者是格林尼治時(shí)間。。就是說(shuō)存儲(chǔ)時(shí)DATE就按照給的時(shí)間存,TIMESTAMP則是在先根據(jù)所在時(shí)區(qū)和給的時(shí)間戳算出對(duì)應(yīng)的格林尼治時(shí)間再存,訪問(wèn)時(shí)DATE就按照他存的時(shí)間返回,TIMESTAMP則是根據(jù)存的時(shí)間戳(看作格林尼治時(shí)間)和所在時(shí)區(qū)算出所在時(shí)區(qū)的對(duì)應(yīng)時(shí)間。

6、通常用TIMESTAMP,空間效率高

7、MYSQL沒(méi)有提供比秒更小粒度的日期和時(shí)間值,如果需要,可以用BIGINT存儲(chǔ)微妙級(jí)別的時(shí)間戳,或用DOUBLE存儲(chǔ)秒之后的小數(shù)部分。

實(shí)數(shù)類型

1、金融類要用DECIMAL

2、DECIMAL可以保存BIGINT范圍外的整數(shù)

3、FLOAT和DOUBLE使用標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算進(jìn)行近似計(jì)算

char 和 varchar

1、char是定長(zhǎng),varchar是變長(zhǎng),也就是varchar節(jié)省空間(除非使用ROW——FORMAT=FIXED創(chuàng)建的話)

2、因?yàn)関archar是變長(zhǎng)的,所以UPDATE時(shí)如果長(zhǎng)度變長(zhǎng),就會(huì)做額外的工作

3、下列情況使用varchar:字符串列的最大長(zhǎng)度比平均長(zhǎng)度大很多;列的更新很少(所以碎片不是問(wèn)題);使用了像UTF8這樣的字符集(每個(gè)字符都使用不同的字節(jié)數(shù)進(jìn)行存儲(chǔ))

4、CHAR適用情況:很短,或者所有值都接近同一個(gè)長(zhǎng)度(如MD5);列經(jīng)常變更

5、末尾空格問(wèn)題:高版本varchar會(huì)保留末尾空格;char和低版本varchar會(huì)剔除末尾空格。

6、CHAR(N),VARCHAR(N)中N表示字符數(shù),而非字節(jié)數(shù)(中文字符在UTF8中占用3字節(jié))

7、雖然VARCHAR(N)數(shù)據(jù)類型在磁盤(pán)中存的就是他所表示的字符串的大小,但是讀取到內(nèi)存中的時(shí)候內(nèi)存是會(huì)給他分配N*k+1or2(N<=255,1;else 2;)(k根據(jù)字符集決定)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL處理DB讀寫(xiě)分離數(shù)據(jù)不一致問(wèn)題的方案

    MySQL處理DB讀寫(xiě)分離數(shù)據(jù)不一致問(wèn)題的方案

    在互聯(lián)網(wǎng)中大型項(xiàng)目中,讀寫(xiě)分離應(yīng)該是我們小伙伴經(jīng)常聽(tīng)說(shuō)的,這個(gè)主要解決大流量請(qǐng)求時(shí),提高系統(tǒng)的吞吐量,本文給大家介紹了MySQL處理DB讀寫(xiě)分離數(shù)據(jù)不一致問(wèn)題的方案,需要的朋友可以參考下
    2024-02-02
  • linux下備份MYSQL數(shù)據(jù)庫(kù)的方法

    linux下備份MYSQL數(shù)據(jù)庫(kù)的方法

    這是一個(gè)眾所周知的事實(shí),對(duì)你運(yùn)行中的網(wǎng)站的MySQL數(shù)據(jù)庫(kù)備份是極為重要的。
    2010-02-02
  • mysql?WITH?RECURSIVE語(yǔ)法的具體使用

    mysql?WITH?RECURSIVE語(yǔ)法的具體使用

    WITH RECURSIVE是一個(gè)用于創(chuàng)建遞歸查詢的語(yǔ)句,本文主要介紹了mysql?WITH?RECURSIVE語(yǔ)法的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Windows下MySQL8.0.18安裝教程(圖解)

    Windows下MySQL8.0.18安裝教程(圖解)

    這篇文章主要介紹了Windows下MySQL8.0.18安裝教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 詳解MySQL多表查詢

    詳解MySQL多表查詢

    最近學(xué)習(xí)了多表查詢,這篇文章主要給大家介紹了關(guān)于MySQL多表查詢,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-04-04
  • MySQL主從復(fù)制的原理及配置方法(比較詳細(xì))

    MySQL主從復(fù)制的原理及配置方法(比較詳細(xì))

    MySQL 的數(shù)據(jù)庫(kù)的高可用性的架構(gòu)大概有以下幾種:集群,讀寫(xiě)分離,主備。而后面兩種都是通過(guò)復(fù)制來(lái)實(shí)現(xiàn)的。下面將簡(jiǎn)單介紹復(fù)制的原理及配置,以及一些常見(jiàn)的問(wèn)題
    2014-05-05
  • Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫(kù)的方法

    Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫(kù)的方法

    ubuntu系統(tǒng)和windows系統(tǒng)雙系統(tǒng)共用是用戶喜歡使用的方式之一,而MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在Windows平臺(tái)中常以WAMP方式搭配使用,在Linux平臺(tái)中常以LAMP組合形式出現(xiàn),下面的方法可以使得Ubuntu平臺(tái)共用Windows平臺(tái)中的MySQL數(shù)據(jù)庫(kù)
    2012-01-01
  • MySQL存儲(chǔ)過(guò)程相互調(diào)用并獲得錯(cuò)誤碼示例

    MySQL存儲(chǔ)過(guò)程相互調(diào)用并獲得錯(cuò)誤碼示例

    這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程相互調(diào)用并獲得錯(cuò)誤碼,需要的朋友可以參考下
    2014-03-03
  • centOS安裝mysql5.7詳細(xì)教程

    centOS安裝mysql5.7詳細(xì)教程

    這篇文章主要為大家介紹了centOS安裝mysql5.7詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • mysql中insert與select的嵌套使用解決組合字段插入問(wèn)題

    mysql中insert與select的嵌套使用解決組合字段插入問(wèn)題

    本節(jié)主要介紹了mysql中insert與select的嵌套使用解決組合字段插入問(wèn)題,需要的朋友可以參考下
    2014-07-07

最新評(píng)論

上高县| 泽普县| 洪洞县| 上饶县| 砚山县| 镇原县| 曲靖市| 固始县| 台中县| 南靖县| 定陶县| 玉林市| 疏附县| 离岛区| 四平市| 荣昌县| 仁布县| 健康| 鹤壁市| 南投县| 满洲里市| 安龙县| 自贡市| 尼玛县| 南江县| 信阳市| 盘山县| 吉木乃县| 吉首市| 尼木县| 南澳县| 南和县| 墨脱县| 张家港市| 额尔古纳市| 邯郸县| 邹平县| 永新县| 万全县| 汨罗市| 耿马|