首页 > 数据库 > MySQL的optimize的效果太震惊了

MySQL的optimize的效果太震惊了

2010年01月14号
查看评论 发表评论 307次浏览

今天写的一个页面,用的AJAX,但是总是感觉很慢,查看了一下消耗的时间,600ms左右,太长了,有明显的延迟感。不能这样发布啊,太慢了,于是找哪块消耗的时间最长,发现后台的一条的SQL语句很慢,大概500多ms,但是看上去那条SQL语句不会消耗太多的时间,于是想着想优化表结构,设置索引,正在想要不要做额外的索引的时候,突然想到尝试一下optimize试试看。结果用来之后,时间只有40多ms了,一下子就没有那种延迟感了,效果很明显。

回来后在网上查了一下,有段对optimize的描述:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,

则应使用OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。

您可以使用OPTIMIZE TABLE来重新
利用未使用的空间,并整理数据文件的碎片。

在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次
即可,只对特定的表运行。

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。

注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。

因为我那个表,里面有VARCHAR字段,而且,那个表是分了三步生成的,后期有大量的update操作,所以optimize后效果很明显。

类别数据库 标签
  1. nike nba basketball shoes
    发表于 2010年06月18号 03时26分56秒 | 1楼

    thank you ssooooooooooooooo much…. i thought i am alone in having these feelings….

  2. mbt shoes
    发表于 2010年06月24号 08时53分26秒 | 2楼

    This article hit home for me in multiple ways.

  3. paul smith wallets
    发表于 2010年06月29号 01时41分24秒 | 3楼

    How much more enjoyable to read about your journey now.

  4. Herve Leger Dresses on Sale
    发表于 2010年07月08号 17时23分57秒 | 4楼

    i think it’s amazing.

  5. mbt shoes sale
    发表于 2010年07月21号 14时23分06秒 | 5楼

    What a beautiful creation

  6. chi flat irons
    发表于 2010年07月26号 12时27分54秒 | 6楼

    hahaha!

  7. christian louboutin barcelona gladiator platforms
    发表于 2010年07月28号 10时09分25秒 | 7楼

    I want to hear more, his blog is pretty cool too.

  8. ghd mk4 styler
    发表于 2010年07月29号 11时42分35秒 | 8楼

    Thank you, my day was pretty cool.