三 Schema與資料型別優化

2022-09-12 22:03:25 字數 548 閱讀 6313

schema,中文叫模式,是資料庫的組織和結構

更小的通常更好:盡量使用可以正確儲存資料的最小資料型別

簡單就好:簡單資料型別的操作通常需要更少的cpu週期。例如:整型比字元操作代價更低

blob和text都是為儲存很大的資料而設計的字串資料型別,分別採用二進位制和字元方式儲存。

blob和text家族之間僅有的不同是blob型別儲存的是二進位制資料,沒有排序規則或字符集,而text型別有字符集和排序規則。

mysql對blob和text列進行排序時,只對每個列的最前max_sort_length位元組而不是整個字串作排序。

如果查詢使用了blob或text列並且需要使用隱式臨時表,將不得不使用myisam磁碟臨時表,這會導致嚴重的效能開銷。所以,應該盡量避免使用blob和text型別。

datetime能儲存大範圍的值,從2023年到2023年,精度為秒。

timestamp儲存了從1970.1.1午夜(格林尼治標準時間)以來的秒數。只能表示從2023年到2023年。

二者可以相互轉換

在大部分情況下,它都會鎖表並且重建整張表。

Schema與資料型別優化

關於資料型別選擇的一些記錄 tinyint 8 smallint 16 mediumint 24 int 32 bigint 64 可選屬性 unsigned。mysql可以為整型指定寬度,如int 11 但大多數時候沒有意義,只是規定了一些互動工具用來顯示字元的個數。從mysql4.1開始,每個字...

Schema與資料型別優化

選擇優化的資料型別 1.更小的通常更好 一般情況下,應該盡量使用可以正確儲存資料的最小資料型別。因為它們占用更少的磁碟。記憶體和cpu快取,並且處理時需要的cpu週期也更少 2.簡單就好 簡單資料型別的操作通常需要更少的cpu週期 3.盡量避免null 通常情況下最好指定列為not null。通常把...

Schema與資料型別優化

關於整數型別 1.整數型別都有可選的unsigned,表示不允許負值。2.為整數型別指定顯示寬度是沒有意義的,只會控制客戶端顯示字元的個數。關於實數型別 1.不精確型別 float,double 精確型別 decimal 2.cpu不支援對decimal進行直接運算,可以直接對浮點進行運算 同時,d...