运行 OPTIMIZE TABLE 对表进行碎片整理,以获得更好的性能

运行 OPTIMIZE TABLE 对表进行碎片整理,以获得更好的性能

我正在运行 Linux 64 位操作系统。我的 mysql 调谐器显示以下内容:

-------- 一般统计数据 --------------------------------------------------
[--] 跳过 MySQLTuner 脚本的版本检查
[OK] 当前正在运行支持的 MySQL 版本 5.1.61-log
[OK] 在 64 位架构上运行

-------- 存储引擎统计 ----------------------------------------------------------
[--] 状态:-档案-BDB-Federated +InnoDB-ISAM-NDBCluster
[--] MyISAM 表中的数据:1G(表:1914)
[--] InnoDB 表中的数据:4M(表:199)
[!!] 碎片表总数:296

-------- 安全建议 ----------------------------------------------------------
[确定] 所有数据库用户都已分配密码

-  -  -  -  性能指标  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -
[--] 持续时间:6 秒(7K q [1K qps],142 个连接,TX:8M,RX:701K)
[--] 读取/写入:97%/3%
[--] 总缓冲区:全局 1.7G + 每个线程 13.2M(最大 384 个线程)
[确定] 最大可能的内存使用量:6.6G(已安装 RAM 的 42%)
[OK] 慢速查询:0% (0/7K)
[OK] 可用连接的最高使用率:5% (20/384)
[OK] 键缓冲区大小/总 MyISAM 索引:1.5G/2.7G
[OK] 密钥缓冲区命中率:97.4% (553K 缓存/14K 读取)
[OK] 查询缓存效率:64.6%(4K 缓存/6K 选择)
[确定] 每日查询缓存修剪次数:0
[OK] 需要临时表的排序:0% (2 个临时排序/337 个排序)
[确定] 磁盘上创建的临时表:8%(磁盘上 17 个/总共 198 个)
[OK] 线程缓存命中率:85%(已创建 20 个/142 个连接)
[OK] 表缓存命中率:98% (438 打开 / 445 已打开)
[确定] 使用的打开文件限制:10% (856/8K)
[OK] 立即获取表锁:99% (2K 立即/2K 锁)
[确定] InnoDB 数据大小/缓冲池:4.2M/8.0M


-------- 建议 -----------------------------------------------------------------
一般建议:
    运行 OPTIMIZE TABLE 对表进行碎片整理,以获得更好的性能
    MySQL 在过去 24 小时内启动 - 建议可能不准确

他们的建议是运行OPTIMIZE TABLE碎片整理表以获得更好的性能;但我不知道如何通过 Putty 运行它。

有谁可以给​​我代码,我该如何通过 Putty 运行它?

答案1

OPTIMIZE TABLE是一个 SQL 语句 - 在 MySQL 客户端中运行它。

在服务器的命令行上,您应该安装命令行客户端;您可以使用在客户端连接到您的数据库mysql -u username -p

查看文档OPTIMIZE TABLE了解更多信息。

答案2

您也可以mysqlcheck -u username -p --auto-repair --optimize --all-databases在终端尝试。

至于运行“优化表”,您可以像这样启动 MySQL mysql -u username -p,然后从那里执行命令。通常我使用的第一个命令是,show databases;但您确实应该先找到 MySQL 教程。Google 中出现的第一个命令是:http://downloads.mysql.com/docs/mysql-tutorial-excerpt-5.1-en.pdf

无论您是否使用 Putty 都无关紧要。您可能想说“从命令行”而不是“通过 Putty”。

相关内容