mysql一個數據庫允許存放多少個表?數據庫裏表多少個才合理?

mysql的配置項裏是否有對一個數據庫中,是否有最大數據表的限制,後面查詢了相關資料,才發現,mysql數據庫中,對單個數據庫中的最大允許建立的數據表是沒有配置項,也就是說沒有限制的。

mysql單數據庫對數據表限制數量的問題:
1.一個數據庫是沒有表現值的,或者說這個被限制的值很大
2.一個mysqld服務可以支持的表對象數量是,42億多點,所以這個限制基本上不需要考慮
 
從性能考慮的話,一個數據庫建立多少張表適合的問題:
1.當一個數據庫或實例中,表太多,意味着可能同時需要打開的表,從操作系統角度說就是:文件描述符很多,這個操作系統有限制的,但是可以修改操作系統的內核參數達到
 
2.多少表性能就會下降,分2點闡述
2.1.分表多,意味着需要維護的表結構和統計信息多,一般情況下此不會成爲任何瓶頸,但是太不合理,比如幾萬甚至更大,可能就有問題了
2.2.性能是否下降明顯,最直接的就是:跟服務器的承載能力和數據量有關係,這個是最直接的
 
3.反問“爲何要分很多表”呢?
3.1.分表太多,容易造成程序邏輯複雜,降低性能,以及增加出錯的風險點
3.2.若是表中的數據量(指容量,多少GB)很大,只是分表解決不了問題,因爲在同一個服務器上,其物理IO能力最優先達到瓶頸

所以,一個數據庫建立多少表,這個MYSQL是沒有限制的。但是從性能考慮,肯定是有一定影響的,但是從IO和其他服務器性能考慮,這塊的性能基本上還不足影響到很大成份。所以建議大家一個數據庫建立在二百個表以下,這樣也是比較合理的了。影響性能也不大。

但是如果你執意要知道MYSQL能夠建立多少個表的話,可以參考以下理論值的資料吧:
 
在mysql中,每個數據庫最多可創建20億個表,一個表允許定義1024列,每行的最大長度爲8092字節(不包括文本和圖像類型的長度)。

當表中定義有varchar、nvarchar或varbinary類型列時,如果向表中插入的數據行超過8092字節時將導致Transact-SQL語句失敗,併產生錯誤信息。

轉載於:https://blog.csdn.net/shenwansangz/article/details/50358074

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