如何在MYSQL中优化表?

时间:2015-08-03 12:39:17

标签: mysql optimization

我有一个数据库,它包含100个表,其中三个表的大小增加到3 GB到8 GB。我这样做是为了减少表的大小。 我正在使用优化表命令,它工作正常,但大小不会减少。

我正在使用percona工具包命令。 命令工作正常并成功完成但是 表大小相同,对表大小没有影响。 我该怎么做才能解决这个问题?

我如何通过pt-online-schema-change优化表以优化非常大的表? 我的表格大小是10 GB,我怎样才能减小表格大小。

2 个答案:

答案 0 :(得分:0)

如果您的表格中的数据已经在磁盘上组织得很好,优化表格不会帮助您。

你可以:

  • 删除旧数据
  • 摆脱您不需要的二级索引
  • 为您的表启用压缩
  • 对表进行分区并将某些分区移至其他存储

答案 1 :(得分:0)

如何缩小磁盘空间?

  • INT(3个字节)就足够了,不要使用MEDIUMINT(4个字节)。
  • MEDIUMINT(2个字节)就足够时,请勿使用SMALLINT。等
  • 不要将utf8用于十六进制字符串。
  • 标准化重复值。 (在合理范围内)
  • 压缩客户端中的TEXT字段,然后使用BLOB
  • 除非有正当理由,否则不要PARTITION;它可能会使足迹更大,也许更大。
  • 如果你有INDEX(a)
  • INDEX(a,b)就没用了
  • OPTIMIZE TABLE可能是浪费时间。 (正如你发现的那样。)

pt-online-schema-change(或5.6)可帮助您进行某些更改,而无需长时间锁定表格。

您甚至没有提到基础知识 - MyISAM或InnoDB。 (有些技术不同。)Windows还是Unix? (某些工具在Windows上不起作用。)

让我们看看SHOW CREATE TABLE;我们可能会提出更多建议。

为什么10GB吓到你了?许多系统处理100GB。 1TB有点吓人。