การนับจำนวนคอลัมน์รวมทุกตารางด้วย INFORMATION_SCHEMA.COLUMNS
View INFORMATION_SCHEMA.COLUMNS เก็บข้อมูลเมตาของคอลัมน์ทุกตารางในทุก Database สามารถนับจำนวนแถว (แต่ละแถว = 1 คอลัมน์) ได้ด้วย COUNT(*) กรองตาม TABLE_SCHEMA
ตัวอย่างการใช้งาน
Database 'sample':
mysql> SELECT COUNT(*) AS TOTAL_NUMBER_OF_FIELDS
-> FROM INFORMATION_SCHEMA.COLUMNS
-> WHERE TABLE_SCHEMA = 'sample';
+------------------------+
| TOTAL_NUMBER_OF_FIELDS |
+------------------------+
| 796 |
+------------------------+
1 row in set (0.04 sec)
Database 'test':
mysql> SELECT COUNT(*) AS TOTAL_NUMBER_OF_FIELDS
-> FROM INFORMATION_SCHEMA.COLUMNS
-> WHERE TABLE_SCHEMA = 'test';
+------------------------+
| TOTAL_NUMBER_OF_FIELDS |
+------------------------+
| 1108 |
+------------------------+
1 row in set (0.03 sec)
คำอธิบาย
TABLE_SCHEMA= ชื่อ Database (Schema)- แต่ละแถวใน COLUMNS = 1 คอลัมน์ของ 1 ตาราง
COUNT(*)นับจำนวนแถว = จำนวนคอลัมน์รวม
Query ขยาย: แยกตามตาราง
SELECT TABLE_NAME, COUNT(*) AS column_count
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database'
GROUP BY TABLE_NAME
ORDER BY column_count DESC;
Query ขยาย: รวมขนาดข้อมูล
SELECT
TABLE_SCHEMA AS `Database`,
COUNT(DISTINCT TABLE_NAME) AS Tables,
COUNT(*) AS Columns,
SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 AS Size_MB
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('information_schema','mysql','performance_schema','sys')
GROUP BY TABLE_SCHEMA;
Query นี้ให้ภาพรวม: จำนวนตาราง, จำนวนคอลัมน์, ขนาดรวมต่อ Database