MySQL資料庫的資料型別和索引介紹

2021-07-23 05:52:38 字數 1027 閱讀 5276

資料庫有沒有建過索引? 沒有。 居然沒有建過索引,查詢難道不用索引麼!!!

資料庫的資料庫索引對程式設計師來說是透明的,意味著資料庫建立索引之前和之後,你的sql語句都可以正常執行,索引的運用只是資料庫引擎工作時候的優化手段。但是,這不是意味著資料庫索引僅僅是資料庫設計和運維者的事情,對於乙個程式設計師如果對資料庫已有的索引有所了解,還是可以大大優化程式設計師資料庫的查詢和修改語句執行效率的,以免你的低效查詢語句稱為拖累整個系統效能的black sheep。本文對mysql資料型別和索引建立、優化進行整理,現在資料庫引擎預設都是innodb的,而且目前mysql/mariadb應用於生產環境時候,應該都是用的這個引擎吧。

數字型別算是最簡單的了,主要差異在於各個型別的取值範圍大小限制,和對儲存空間位元組數的需求。數字型別當然是在滿足情況的條件下越短越好,一方面mysql每行有65535位元組長度的限制,同時更寬的資料型別意味著對cpu、記憶體、磁碟i/o帶來壓力。

在資料庫設計的時候,常常看到這些整形有個字首長度,其實這對其型別本身的儲存長度和精度沒有影響,只會關係到某些互動式工具顯示出來的字元個數。

計算機的浮點運算都是不精確的,如果要實現精確浮點運算,就需要使用decimal型別。

timestamp儲存的範圍比datetime要小,但是空間利用率也最高。mysql支援的時間精度最高為1s,如果更精確的儲存,就必須自己定義儲存格式了。

mysql中的字串型別比較多也比較的複雜,各個字串型別的差別不僅僅在儲存時候的空間占用,對訪問時候字段某位的strip和padding還有差異。對於型別char/varchar/text是跟本地字符集相關的,這會影響到實際占用空間的位元組數、字元比較等。

資料庫索引可以用來快速找到需要的行,否則的話mysql就需要一行一行的遍歷,查詢效率自然相當的低。 mysql支援的索引包括primary key、unique、index、fulltext型別的索引。前面說過,fulltext型別的全文索引在中文下基本是報廢的,在此就不予討論了。 特別注意的是,對於索引列只能使用單純的列名,而不能是表示式或者函式的一部分,比如age+2、to_days(date_col),引擎在檢索的時候才能使用索引。

mysql資料庫資料型別

1 數值型別 類 型大 小 範圍 有符號 範圍 無符號 用 途tinyint 1 位元組 128 127 0 255 微小整數 smallint 2 位元組 32768 32767 0 65535 小整數mediumint 3 位元組 223 223 1 0 2 24 1 中整數int 4 位元組 ...

mysql資料庫資料項型別 資料庫資料型別有哪些

mysql中定義資料欄位的型別對你資料庫的優化是非常重要的。mysql支援多種型別,大致可以分為三類 數值 日期 時間和字串 字元 型別。一 數值型別 mysql支援所有標準sql數值資料型別。這些型別包括嚴格數值資料型別 integer smallint decimal和numeric 以及近似數...

mysql資料庫資料型別彙總

整數型別 型別名稱 說明範圍 儲存需求 tinyint 很小的整數 128 127 1個位元組 smallint 小的整數 32768 32767 2個位元組 mediumint 中等大小的整數 8388608 8388607 3個位元組 int integhr 普通大小的整數 2147483648...