[英]How to count number of columns and rows in mysql
我有一個要求,我需要計算給定數據庫的列數,行數和每個表的大小。
以下查詢未提供確切結果,
SELECT t1.table_name, t1. table_rows,COUNT(t2.table_name) AS table_colums, t1. data_length
FROM INFORMATION_SCHEMA.TABLES t1
JOIN (SELECT table_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema='my_db_name') t2
ON t1.table_name=t2.table_name
WHERE t1.TABLE_SCHEMA = 'my_db_name';
有什么線索嗎?
計算行數:
SELECT COUNT(*) FROM yourtable;
計數列:
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'yourtable'
如果用每個表的大小表示以MB為單位的大小,則:
SELECT
table_name AS `Table`,
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
WHERE table_schema = "yourdatabase"
AND table_name = "yourtable";
這個查詢解決了我的問題。
SELECT t1.table_name, t1.table_rows,
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'my_db_name'
AND table_name = t1.table_name) AS colsm,
t1.data_length
FROM INFORMATION_SCHEMA.TABLES t1
WHERE t1.TABLE_SCHEMA = 'my_db_name';
這可能會為您提供所需的結果
SELECT t1.table_name
,round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
,(select count(*) from information_schema.columns c where c.table_schema = t1.table_schema and c.table_name = t1.table_name) as cols
,t1.table_rows as rows
FROM INFORMATION_SCHEMA.TABLES t1
WHERE t1.table_schema = 'my_db_name'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.