gpt4 book ai didi

mysql - 优化和检查表mysql

转载 作者:IT老高 更新时间:2023-10-28 23:49:03 25 4
gpt4 key购买 nike

我有一个用于统计的数据库,有 2000 多个表,每个表大约有 1 亿行。

我认为每周检查几次表以确保它们健康是很好的,如果不健康,修复和优化它们。

60% 的表格每天更新,其余为存档。

我的问题是关于check(repair)/optimize:检查表的健康状况并每周优化几次以确保系统平稳运行是否很好?

最佳答案

通常,当磁盘上的数据文件碎片过多时,您需要优化表(使用文件系统工具检查 - GiantRobot 链接的脚本不计算碎片),当有许多行更新并更改其大小时(即会创建行碎片)或删除许多记录后,您不会很快再次添加它们。因为 MySQL 将空闲空间用于新行,所以当删除记录和新记录具有相同的行大小时,不需要 OPTIMIZE。

CHECK TABLE 仅在您怀疑数据损坏(在正常运行期间不应发生)时使用。一些 linux 发行版(例如 Debian)有启动脚本,在 MySQL 服务器启动时为所有表运行 CHECK TABLE。然后使用 REPAIR TABLE 修复损坏的表。

ANALYZE TABLE 可用于更新索引基数,用于确定查询执行计划。通常只有在特殊情况下才需要。

从您的问题中不清楚您的统计表是如何使用的...有多少写入、删除和读取?我的统计表一直在写入,每天读取一次,合并数据并写入其他表,然后删除。在这种情况下,不需要运行 OPTIMIZE,因为数据不会经常读取,并且空闲空间会重新用于新数据。我每天都在使用分区,所以我没有删除记录(这很慢),而是 DROP PARTITION(最多需要 1 秒)

关于mysql - 优化和检查表mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com