1. 程式人生 > >mysql一個數據庫允許存放多少個表?資料庫裡表多少個才合理?

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語句失敗,併產生錯誤資訊。