資料庫中有幾十上百張表,那麼哪些表的數據量比較大呢,總不能一個表一個表的去查詢吧,在mysql中也有類似於oracle的數據字典表,只不過mysql沒有oracle記錄的那麼多和詳細,但也足夠我們查詢這些信息了。
在mysql的information_schema下有存儲資料庫基本信息的數據字典表,可以通過查詢tables表來獲得所需要的表相關信息。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
|mysql |
|report |
| report_result |
|test |
+--------------------+
5 rows in set (0.02 sec)
mysql> use information_schema;
Database changed
mysql> show tables;
+---------------------------------------+
|Tables_in_information_schema |
+---------------------------------------+
|CHARACTER_SETS |
|COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
|COLUMNS |
|COLUMN_PRIVILEGES |
|KEY_COLUMN_USAGE |
|PROFILING |
|ROUTINES |
|SCHEMATA |
|SCHEMA_PRIVILEGES |
|STATISTICS |
|TABLES |
|TABLE_CONSTRAINTS |
|TABLE_PRIVILEGES |
|TRIGGERS |
|USER_PRIVILEGES |
|VIEWS |
+---------------------------------------+
17 rows in set (0.00 sec)
那麼我們查看一下talbes表結構信息,看看存儲的具體信息
mysql> desc tables;
+-----------------+--------------+------+-----+---------+-------+
| Field |Type | Null | Key | Default |Extra |
+-----------------+--------------+------+-----+---------+-------+
| TABLE_CATALOG | varchar(512) | YES | | NULL | |
| TABLE_SCHEMA | varchar(64) | NO | | | |
| TABLE_NAME | varchar(64) | NO | | | |
| TABLE_TYPE | varchar(64) | NO | | | |
| ENGINE |varchar(64) | YES | |NULL | |
| VERSION |bigint(21) | YES | |NULL | |
| ROW_FORMAT | varchar(10) | YES | | NULL | |
| TABLE_ROWS | bigint(21) | YES | | NULL | |
| AVG_ROW_LENGTH | bigint(21) | YES | | NULL | |
| DATA_LENGTH | bigint(21) | YES | | NULL | |
| MAX_DATA_LENGTH | bigint(21) | YES | | NULL | |
| INDEX_LENGTH | bigint(21) | YES | | NULL | |
| DATA_FREE | bigint(21) |YES | | NULL | |
| AUTO_INCREMENT | bigint(21) | YES | | NULL | |
| CREATE_TIME | datetime |YES | | NULL | |
| UPDATE_TIME | datetime |YES | | NULL | |
| CHECK_TIME | datetime |YES | | NULL | |
| TABLE_COLLATION | varchar(64) | YES | |NULL | |
| CHECKSUM | bigint(21) |YES | | NULL | |
| CREATE_OPTIONS | varchar(255) | YES | |NULL | |
| TABLE_COMMENT | varchar(80) | NO | | | |
+-----------------+--------------+------+-----+---------+-------+
21 rows in set (0.00 sec)
主要存儲了表的信息如表使用的引擎,表的類型等信息。我們可以通過查詢table_rows屬性獲得哪些表數據量比較大。
mysql> select table_name,table_rows from tables order by table_rows desc limi 10;
+---------------+------------+
| table_name |table_rows |
+---------------+------------+
| task6 | 1558845 |
| task | 1554399 |
| task5 | 1539009 |
| task3 | 1532169 |
| task1 | 1531143 |
| task2 | 1531143 |
| task4 | 1521225 |
| task7 | 980865 |
我們繼續深入思考,這些存儲的數據是否准確,是否真實的反應了表中數據量大小?
mysql> show create table tables \G;
*************************** 1. row***************************
Table: TABLES
Create Table: CREATE TEMPORARY TABLE`TABLES` (
`TABLE_CATALOG` varchar(512) default NULL,
`TABLE_SCHEMA` varchar(64) NOT NULL default '',
`TABLE_NAME` varchar(64) NOT NULL default '',
`TABLE_TYPE` varchar(64) NOT NULL default '',
&nb
❷ 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語句失敗,並產生錯誤信息。
❸ mysql一個資料庫可建立多少個表
從MySQL角度來說,本身對一個資料庫中有多少表並不限制
數據表多的話,也沒有關系,關鍵是效率和你有多少表沒有直接關系。效率主要看你的數據表設計結果和查詢
❹ 有誰知道mysql最多能建多少個資料庫,每個庫最多能有多少張表
SQL Server 的每個資料庫最多可存儲 20 億個表,每個表可以有 1024 列。
表的行數及總大小僅受可用存儲空間的限制。每行最多可以存儲 8,060 位元組。
如果創建具有 varchar、nvarchar 或 varbinary 列的表,並且列的位元組總數超過 8,060 位元組,雖然仍可以創建此表,但會出現警告信息。
如果試圖插入超過 8,060 位元組的行或對行進行更新以至位元組總數超過 8,060,
將出現錯誤信息並且語句執行失敗。
❺ mysql 一個資料庫 最多多少張表
MySQL表沒有上限:
考驗你能建多少表的主因就在你有多大的硬碟。
足夠你用就是了,即便你建的網站是大規模、超大規模、超超大規模!
❻ mysql一個資料庫可以建多少表
理論上可以建無數個表,根據你資料庫大小而定!
❼ mysql一個資料庫對表數量有沒有限制
會!肯定會影響!表越多運行越慢,即使表裡面沒有數據也一樣!一般MYSQL控制在128個表左右,數據量控制在20G左右,運行效果基本不變,如果超過,速度肯定受影響。而且還要根據你的計算機配置而定,如果配置一般的話,128和20G都會很吃力的!
❽ mysql資料庫的基本組成單元是多張表
你想問的應該是mysql資料庫的基本組成單元是多張表是什麼意思。MySQL是關系型資料庫管理軟體,多條數據組成一張表,多張表組成一個庫。
表才是存放數據的基本單元。結論:Mysql數據底層由多個database組成,每一個database存放多張表。
一組表組成了資料庫。通俗來講這種資料庫就是由多張表組成,並且這些表之間存在一定的關系。