| 5.查看库或表大小 # 查看整个实例占用空间大小: SELECT  concat( round( sum( data_length / 1024 / 1024 ), 2 ), 'MB' ) AS data_length_MB,  concat( round( sum( index_length / 1024 / 1024 ), 2 ), 'MB' ) AS index_length_MB  FROM  information_schema.`TABLES`;   # 查看各个库占用大小: SELECT  TABLE_SCHEMA,  concat( TRUNCATE ( sum( data_length )/ 1024 / 1024, 2 ), ' MB' ) AS data_size,  concat( TRUNCATE ( sum( index_length )/ 1024 / 1024, 2 ), 'MB' ) AS index_size  FROM  information_schema.`TABLES` GROUP BY  TABLE_SCHEMA;   # 查看单个库占用空间大小: SELECT  concat( round( sum( data_length / 1024 / 1024 ), 2 ), 'MB' ) AS data_length_MB,  concat( round( sum( index_length / 1024 / 1024 ), 2 ), 'MB' ) AS index_length_MB  FROM  information_schema.`TABLES` WHERE  table_schema = 'test_db';   # 查看单个表占用空间大小: SELECT  concat( round( sum( data_length / 1024 / 1024 ), 2 ), 'MB' ) AS data_length_MB,  concat( round( sum( index_length / 1024 / 1024 ), 2 ), 'MB' ) AS index_length_MB  FROM  information_schema.`TABLES` WHERE  table_schema = 'test_db'   AND table_name = 'tbname'; 
 6.查看表碎片及收缩语句 # 查看某个库下所有表的碎片情况: SELECT  t.TABLE_SCHEMA,  t.TABLE_NAME,  t.TABLE_ROWS,  concat( round( t.DATA_LENGTH / 1024 / 1024, 2 ), 'M' ) AS size,  t.INDEX_LENGTH,  concat( round( t.DATA_FREE / 1024 / 1024, 2 ), 'M' ) AS datafree  FROM  information_schema.`TABLES` t  WHERE  t.TABLE_SCHEMA = 'test_db'  ORDER BY  datafree DESC;   # 收缩表,减少碎片: alter table tb_name engine = innodb; optimize table tb_name; 
 7.查找无主键表 # 查找某一个库无主键表: SELECT table_schema, table_name FROM  information_schema.`TABLES` WHERE  table_schema = 'test_db' AND TABLE_NAME NOT IN (  SELECT  table_name  FROM  information_schema.table_constraints t  JOIN information_schema.key_column_usage k USING (  constraint_name,  table_schema,  table_name  )  WHERE  t.constraint_type = 'PRIMARY KEY'  AND t.table_schema = 'test_db' ); # 查找除系统库外 无主键表: SELECT  t1.table_schema,  t1.table_name FROM  information_schema.`TABLES` t1 LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA AND t1.table_name = t2.TABLE_NAME AND t2.CONSTRAINT_NAME IN ('PRIMARY') WHERE  t2.table_name IS NULL AND t1.TABLE_SCHEMA NOT IN (  'information_schema',  'performance_schema',  'mysql',  'sys' ) ; 
 总结: 希望这些SQL语句能对你有所帮助,可以收藏一下,说不定某次就用到了呢! (编辑:海洋资讯信息网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |