该手册说,关于“优化表”:
“删除的行保存在链表中,随后的 INSERT 操作会重用旧的行位置。您可以使用 OPTIMIZE TABLE 回收未使用的空间并对数据文件进行碎片整理。”
所以我猜即使存储介质是SSD也会有一些性能提升(因为删除行的链表将被消除)。OTOH(再次猜测)性能提升不会像 HDD 那样显着,这也将受益于运行优化后更快的顺序读取。
那么在这种情况下是否值得运行优化?性能提升是否足以超过 SSD 预期寿命的减少(由于不必要的重新排列存储的数据)?。我说的是在其他方面非常适合优化的表(具有频繁更新的可变长度行)。
我正在尝试在运行 Debian Squeeze 和 Apache 2 的 VirtualBox 来宾实例上设置 https 服务。
当尝试从我的 Win7 主机的浏览器中加载我的虚拟主机的测试页面时,我收到错误“ ssl_error_rx_record_too_long ”。同时,Apache 错误日志显示“请求\x16\x03\x01 中的方法无效”对于此请求。这个问题可能与我在 VirtualBox 来宾中运行 Apache 的事实无关,但想为您描绘整个画面。
真正有趣的部分是,我已经到了站点可以正确加载的地步,但仅限于来自 localhost(即来自 VirtualBox Debian Guest 内部)的请求。我已经用 lynx 和 wget 验证了这一点,它们按预期工作:
wget https://ssltest.intra/ssl.html
--2013-09-13 07:26:49-- https://ssltest.intra/ssl.html
Resolving ssltest.intra (ssltest.intra)... 127.0.0.1
Connecting to ssltest.intra (ssltest.intra)|127.0.0.1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 122 [text/html]
Saving to: `ssl.html.1'
100%[======================================>] 122 --.-K/s in 0s
2013-09-13 07:26:49 (1.94 MB/s) - `ssl.html.1' saved [122/122]
Run Code Online (Sandbox Code Playgroud)
保存文件的内容与预期完全一致。此外,如果我尝试通过纯文本 HTTP 与服务器通信,它理所当然地将我发送到更好的地方:
telnet ssltest.intra 443 …
Run Code Online (Sandbox Code Playgroud)