首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库表中的数据量

数据库表中的数据量
EN

Database Administration用户
提问于 2014-01-03 14:00:55
回答 3查看 164关注 0票数 1

我试图在表上运行一个alter查询,它给了我一个

代码语言:javascript
复制
Lost connection to MySQL server during query
MySQL server has gone away.

我正在运行的查询是

代码语言:javascript
复制
 alter table table_name modify column_name DOUBLE ( 16, 2) default 8.5;

我猜想这个表包含了大量的数据,因此alter花费了很多时间,服务器连接也丢失了。

我的疑问是,

首先,

如何找出表中的数据量?(我想是以MB/GB表示的)。

其次,如果表中包含大量数据,那么如何在这个表上执行alter呢?

EN

回答 3

Database Administration用户

发布于 2014-05-07 20:58:11

您需要检查服务器的错误日志(S)。有太多的情况可能导致这个问题。例如:

  • 该表已损坏,InnoDB在读取无效的页校验和时检测到这一点。这里的默认行为是关闭以强制管理员进行干预。
  • 您的服务器已被配置为使用内存过多。OOM杀手终止了我的生命。
  • 根本没有问题。客户端断开连接,但服务器继续运行ALTER语句,并最终完成。
票数 2
EN

Database Administration用户

发布于 2014-01-03 14:12:29

代码语言:javascript
复制
SELECT table_schema "Data Base Name", sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema;

将给出数据库大小(以MB为单位)。

对不起,我不能帮你提第二个问题。

票数 0
EN

Database Administration用户

发布于 2014-05-07 20:42:16

关于你问题的第二部分,你可以:

  • 创建具有新列结构的新表
  • 将数据从旧表复制到新表INSERT INTO ... SELECT ...
  • DROP旧桌子
  • 将新表RENAME TABLE为旧表名。
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/56074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档