写在前面的话
本文主要用于记录工作中不经常使用但是偶尔用到又非常有用的 SQL 语句,持续不断不定期更新。
数据库大小统计
1. 查看 MySQL 某个库的所有表大小,记录数,占用空间等。
SELECT TABLE_NAME,DATA_LENGTH,INDEX_LENGTH,(DATA_LENGTH+INDEX_LENGTH) as length,TABLE_ROWS,concat(round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,3), 'MB') as total_size FROM information_schema.TABLES WHERE TABLE_SCHEMA='库名' order by length desc;
结果如图:
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小
TABLE_ROWS:记录数
total_size:占用空间
2. 查看某个库中单个表:
select concat(round(sum(data_length/1024/1024),2),'MB') as TABLE_SIZE from information_schema.tables where table_schema='库名' and table_name='表名';
结果如图:
3. 查看单个数据库整体大小:
select concat(round(sum(data_length/1024/1024),2),'MB') as DATABASE_SIZE from information_schema.tables where table_schema='库名';
结果如图:
4. 统计数据库总大小:
select concat(round(sum(data_length/1024/1024),2),'MB') as DATA_SIZE from information_schema.tables;
结果如图:
超时时间设置
1. 查看数据库的超时时间:
SHOW GLOBAL VARIABLES LIKE '%timeout';
结果如图:
红色部分的超时时间为经常搞事情的,建议改大一点!
2. 直接调整超时时间:
SET GLOBAL net_write_timeout=28800; SET GLOBAL net_read_timeout=6000; SET GLOBAL connect_timeout=6000; SET GLOBAL long_query_time=100; SET GLOBAL wait_timeout=600000; SET GLOBAL interactive_timeout=600000;
当然,如果你想永久生效,需要写到 my.cnf 配置中去。