information_schema 概览要点
- information_schema 是只读系统库,存着库表列索引等字典信息
- SCHEMATA 表存数据库清单、字符集、排序规则
- TABLES 表存每张表的引擎、行数、数据长度等
- COLUMNS 表存列名、类型、是否可空、所属表
- STATISTICS 表存索引信息,KEY_COLUMN_USAGE 存外键
- 把它当普通库 SELECT,就能用 WHERE 做任意条件筛选
information_schema 概览示例
-- 所有数据库及其字符集
SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME
FROM information_schema.SCHEMATA;
-- 当前库所有表的引擎与估算行数
SELECT TABLE_NAME, ENGINE, TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'shop';
-- 找出所有含 user_id 列的表
SELECT TABLE_NAME, COLUMN_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'shop'
AND COLUMN_NAME = 'user_id';
避坑提醒:information_schema 的 TABLE_ROWS 是估算值,InnoDB 尤其不准;要精确计数仍需对具体表跑 COUNT(*)。