MySQL數據庫限制研究

對數據庫和表格數量的限制


MySQL對數據庫的數量沒有限制。基礎文件系統可能對目錄的數量有限制。
MySQL對錶的數量沒有限制。基礎文件系統可能對錶示表的文件數量有限制。單個存儲引擎可能會施加特定於引擎的約束。InnoDB允許多達40億張表格


表列計數和行大小的限制


列計數極限
1.MySQL的硬限制是每個表的列數爲4096列,但對於給定的表,有效的最大值可能較小。
1.1表的最大行大小限制列的數目(可能是大小),因爲所有列的總長度不能超過此大小。
1.2各個列的存儲要求限制在給定的最大行大小內的列數。某些數據類型的存儲需求取決於存儲引擎、存儲格式和字符集等因素。
1.3存儲引擎可能會施加其他限制,限制表列計數。

行大小限制
2.1MySQL表的內部表示有65,535字節的最大行大小限制,即使存儲引擎能夠支持更大的行。BLOB和TEXT列只向行大小限制貢獻9到12個字節,因爲它們的內容與行的其餘部分是分開存儲的。
2.2對象的最大行大小。InnoDB適用於存儲在數據庫頁中的本地數據的表略小於半頁。例如,對於默認的16 KB,最大行大小略小於8KB。

MySQL最大行大小限制爲65,535字節,如下所示InnoDB和MyISAM例子。儘管存儲引擎可以支持更大的行,但無論存儲引擎是什麼,限制都是強制的。
列長度在65,535字節的最大長度之內,但需要另外兩個字節來記錄長度,這將導致行大小超過65,535字節:,也就是最大65533字節

InnoDB限制


1.表最多可以包含1000列
2.表最多可以包含64二級索引
3.默認情況下,索引鍵前綴長度限制爲767字節
4.對於multicolumn 索引,最多允許有16列
5.最大行大小(不包括頁外存儲的任何可變長度列)略小於頁的一半。也就是說,最大行大小約爲8000字節。LONGBLOB和LONGTEXT列必須小於4GB,並且行的總大小包括BLOB和TEXT列必須小於4GB。
6.儘管InnoDB在內部支持大於65,535字節的行大小,MySQL本身對所有列的合併大小施加了65,535行大小的限制
7.在一些舊操作系統上,文件必須小於2GB
8.InnoDB日誌文件的最大合併大小爲4GB
9.最小表空間大小略大於10 MB。最大表空間大小爲64 TB,這也是表的最大大小
10.表空間文件的路徑(包括文件名)不能超過MAX_PATH對Windows的限制。在Windows 10之前,MAX_PATH限制爲260個字符。從Windows 10版本1607開始,MAX_PATH公共Win 32文件和目錄函數中的限制被刪除,但是您必須啓用新的行爲。


使用程序分析


ANALYSE([max_elements[,max_memory]])
ANALYSE()檢查查詢的結果,並返回對結果的分析,爲每一列建議最佳的數據類型,這些數據類型可能有助於減少表的大小。若要獲得此分析,請追加PROCEDURE ANALYSE直到SELECT聲明:

SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])

參考:https://dev.mysql.com/doc/refman/5.5/en/column-count-limit.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章