mysql - Mysql 表太大,只有几行
问题描述
我有一个 13 行的 Mysql 表,大小为 128Mb(类似的 50k 行表只有 50Mb),我无法理解其原因。这里的表格详细信息:
要检查表大小,我使用以下语句:
SELECT table_schema "db_name", ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM information_schema.tables GROUP BY table_schema;
如果可能的话,我会避免从头开始截断或重建表。
我该如何调查这个问题?
解决方案
您正在混合由多个表组成的单独的表和数据库。
尝试以下查询以查看单个表的大小:
SELECT CONCAT(TABLE_SCHEMA, ".", TABLE_NAME) `table`,
ROUND((data_length + index_length) / 1024 / 1024, 1) "Table Size in MB"
FROM information_schema.tables
如果单个表仍然占用过多的存储空间,请尝试以下查询,这将释放聚集索引中未使用的空间(至少对于 InnoDB 表而言)。
OPTIMIZE TABLE <tablename>
推荐阅读
- python - 将 keras 预测作为张量图用于张量流
- mysql - if 语句未在 JSP scriptlet 中执行
- java - webview中的批处理事件有可能吗?
- python - pandas.read_feather 得到了一个意想不到的参数 nthreads
- java - How to get week of year and week of month in Jalali (Shamsi) calendar
- c++ - 用 return 语句结束析构函数是否安全?
- azure - Azure Web 作业日志
- angular - 预算中的警告,初始超出最大值
- python - 将自制包函数导入正确的命名空间
- asp.net-core-mvc - 使用从下拉列表中选择更改数据表中的数据