MySQL 請(qǐng)選擇合適的列
點(diǎn)擊圖片,可查看大圖。
介紹
決定列的數(shù)據(jù)類型,我們應(yīng)該遵循下面兩步。
第一步、大致決定數(shù)據(jù)類型。——判斷是數(shù)字,字符串還是時(shí)間等。這通常很直觀。
第二步、確定特定的類型。
很多數(shù)據(jù)類型能夠保存同類型的數(shù)據(jù),但是我們要發(fā)現(xiàn),他們?cè)?STRONG>存儲(chǔ)的范圍,精度和物理空間之間的差別(磁盤或內(nèi)存空間)。如:datetime和timestamp能保存同樣類型的數(shù)據(jù):日期和時(shí)間。——timestamp使用datetime一半的空間;能保存時(shí)區(qū);擁有特殊的自動(dòng)更新能力。
2、unsigned屬性表示不允許負(fù)數(shù),并大致把正上限提高了一倍。如TINYINT UNSIGNED保存的范圍為0到255而不是-127到128
3、MYSQL對(duì)整數(shù)類型定義寬度,比如int(1)和int(22)對(duì)于存儲(chǔ)和計(jì)算是一樣的。只規(guī)定了MYSQL的交互工具(如命令行客戶端)用來(lái)顯示字符的個(gè)數(shù)。
只分配真正需要的空間
使用varchar(5)和varchar(200)保存'hello'占用空間是一樣的。——這里應(yīng)該指的是磁盤上的空間。
那么使用較短列有何優(yōu)勢(shì)?——巨大的優(yōu)勢(shì)
較大的列會(huì)使用更多的內(nèi)存,因?yàn)镸ySQL通常會(huì)分配固定大小的內(nèi)存塊(如varchar(200)會(huì)用200個(gè)字符大小的內(nèi)存空間)來(lái)保存值(然后對(duì)值進(jìn)行trim操作,最后放入磁盤)或取值?!@對(duì)排序或使用基于內(nèi)存的臨時(shí)表尤其不好。
咱們?cè)倏纯磛archar
在對(duì)enum列使用order by的時(shí)候,是按數(shù)字排序的,而不是字符串排序。
日期和時(shí)間類型
TIMESTAMP:保存自1970年1月1日午夜(格林尼治標(biāo)準(zhǔn)時(shí)間)以來(lái)的秒數(shù)?!褂?字節(jié)存儲(chǔ)空間。
通常使用TIMESTAMP,它比DATETIME更節(jié)約空間。有時(shí)人們把Unix的時(shí)間戳保存為整數(shù)值,但是這通常沒(méi)有任何好處?!@種格式處理起來(lái)不太方便,我們并不推薦它。
相關(guān)文章
MySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理詳解
本文以MySQL數(shù)據(jù)庫(kù)為研究對(duì)象,討論與數(shù)據(jù)庫(kù)索引相關(guān)的一些話題。特別需要說(shuō)明的是,MySQL支持諸多存儲(chǔ)引擎,而各種存儲(chǔ)引擎對(duì)索引的支持也各不相同,因此MySQL數(shù)據(jù)庫(kù)支持多種索引類型,如BTree索引,哈希索引,全文索引等等2016-12-12詳解MySQL like如何查詢包含''%''的字段(ESCAPE用法)
這篇文章主要介紹了詳解MySQL like如何查詢包含'%'的字段(ESCAPE用法),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12MySQL學(xué)習(xí)第六天 學(xué)習(xí)MySQL基本數(shù)據(jù)類型
MySQL學(xué)習(xí)第六天和大家一起學(xué)習(xí)MySQL基本數(shù)據(jù)類型,基本類型包括數(shù)值類型、日期和時(shí)間類型和字符串類型等,感興趣的小伙伴們可以參考一下2016-05-05解決MySQL數(shù)據(jù)庫(kù)中文模糊檢索問(wèn)題的方法
解決MySQL數(shù)據(jù)庫(kù)中文模糊檢索問(wèn)題的方法...2007-11-11mysql利用group_concat()合并多行數(shù)據(jù)到一行
把查詢name字段得到的多行記錄進(jìn)行合并,可以通過(guò)程序?qū)崿F(xiàn),但也可直接在sql層完成,需要的朋友可以參考下2014-07-07MySQL主從復(fù)制搭建流程分步實(shí)現(xiàn)
這篇文章主要介紹了MySQL的主從復(fù)制原理詳細(xì)分析,讀寫(xiě)分離是基于主從復(fù)制來(lái)實(shí)現(xiàn)的。文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-11-11mysql中如何根據(jù)經(jīng)緯度計(jì)算距離
這篇文章主要給大家介紹了關(guān)于mysql中如何根據(jù)經(jīng)緯度計(jì)算距離的相關(guān)資料,經(jīng)緯度距離計(jì)算方法是一種用來(lái)計(jì)算地球上兩個(gè)點(diǎn)之間距離的方法,它可以在MySQL數(shù)據(jù)庫(kù)中輕松實(shí)現(xiàn),非常適用于需要進(jìn)行地理定位的應(yīng)用程序,需要的朋友可以參考下2023-08-08詳解MySQL到SelectDB的實(shí)時(shí)同步策略
MySQL?到?SelectDB?的實(shí)時(shí)數(shù)據(jù)同步技術(shù),通過(guò)?NineData?的數(shù)據(jù)復(fù)制控制臺(tái),僅需輕點(diǎn)鼠標(biāo),即可輕松完成?MySQL?到?SelectDB?的同步任務(wù)配置,這篇文章主要介紹了MySQL到SelectDB的實(shí)時(shí)同步策略,需要的朋友可以參考下2023-09-09