不同的mysql版本最大表數目不一樣。通常,mysql最大表的數量受限于以下因素:
- 文件系統中文件的數量限制
- mysql配置中定義的表空間大小限制
- 操作系統資源限制,如進程數量、內存等
如果使用的是ext3文件系統,那么一個目錄下最多只能存放32000個文件。而mysql每一個表就對應一個文件,因此在ext3下,mysql最多創建32000個表。
另外,如果通過innodb引擎創建表,則需要考慮到innodb_file_per_table配置項的限制,該項限制表空間的大小,最多為64 TB。
[mysqld] innodb_file_per_table=1 innodb_data_file_path=ibdata1:10M:autoextend innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix = 1 innodb_io_capacity = 1000 innodb_io_capacity_max = 2000 # more settings here
最后,還要考慮到操作系統的限制。不同的操作系統會有不同的資源限制。比如,32位的操作系統中,任何一個進程都不能占用超過4GB的內存。如果系統中只有mysql一個進程,那么最多只能創建幾千個表。
所以,在考慮mysql最大表數目時,需要綜合考慮文件系統、mysql配置、操作系統等因素。
下一篇mysql 最大存儲