mysql information_schema数据库

1,数据表

1)schemata表 :mysql所有数据库的信息,show databases; 命令取的是shema_name列。
select * from information_schema.schemata;
2)tables表 :mysql所有的表信息,show tables from test_db;命令根据table_schema列取table_name
select * from information_schema.tables where table_schema = "information_schema";
3)columns表:mysql所有列的信息,show columns from schemaname.tablename;底层取自该表
select column_name from columns where table_schema = "information_schema" and table_name = "columns";
4)statistics表:mysql所有索引的信息,show index from shemaname.tablename;命令底层取自statistics表
select * from information_schema.statistics limit 1;
5)triggers表:mysql所有的触发器。如使用pt-online-schema-change修改表结构时,使用触发器往影子表更新。如果手动删除了影子表,触发器不删除,则会产生故障。
6)views表:mysql所有的视图。
7)user_privileges表:mysql所有用户权限。用户表:mysql.user,权限表information_schema.user_privileges

2,相关使用

1)增加用户与授权

mysql information_schema数据库_第1张图片
image.png

2)分库分表时,拼接sql
select concat(table_schema,'.',table_name) from information_schema.tables where table_schema like '%_order_%';
3)根据tables表的 data_length,index_length(单位是字节)计算库大小、表大小、索引大小。
如: 查看information_schema库的大小 select sum(data_length + index_length)/1024/1024 from information_schema.tables where table_schema = "information_schema";
如:查看指定表则增加 and table_name = ""
4)使用pt_online_schema_change,影子表不存在报错时,检查traggers表。
5)查看表的最后更新时间
ls -lahtr /usr/local/mysql/data/my_order_local | grep ibd
-t: Sort by time modified 默认升序
-r: Reverse the order 顺序反转

你可能感兴趣的:(mysql information_schema数据库)