前文我简单总计了web应用的迁移过程,这里补充说明一下数据库迁移后的全文索引重建问题。
数据库导入到MySQL之后,如果有ISAM fulltext表,需要重建索引。
cd /var/lib/mysql/music
找到对应数据表的索引文件,这里music是我的数据库名称(db_name)。
对于较小的表,直接执行:
myisamchk –recover –ft_min_word_len=2 –ft_max_word_len=20 bt.MYI
为了让用户能搜索到较短的人名,比如“许巍”,我把单词的最短长度设定为2。
对于超大的表,直接执行上述命令就不行了,会得到一个错误提示:
myisamchk error: myisam_sort_buffer_size is too small
这时需要为myisamchk命令添加–force和–safe-recover两个参数。 比如,这里我为一个百万记录的表重建索引,则执行:
myisamchk –recover –force –safe-recover –ft_min_word_len=2 –ft_max_word_len=20 albums_fulltext.MYI