我有一个关于如何通过mySQL数据库优化搜索时间的问题。整个数据库存储在包含以下列的1个表中:video_link,image_link,description,length和site。截至目前,我有1,200,000行,并且当完成所有操作后将扩展到10,000,000。当我运行搜索查询时:
SELECT *
FROM `VIDEOS`
WHERE `DESCRIPTION` LIKE '%search_string%'
完成需要1.3808秒。这不是一个糟糕的搜索时间,但当行数翻倍时,它将是。我应该提到数据库正在网站上使用,搜索栏在数据库上运行查询并返回结果。大多数网站都有更多存储方式,搜索时间更短。有没有办法改善表现?
答案 0 :(得分:1)
CREATE FULLTEXT INDEX
fx_videos_description
ON videos (description);
SELECT *
FROM videos
WHERE MATCH(description, '+search_string' IN BOOLEAN MODE);
这仅适用于MySQL 5.6之前的MyISAM表
答案 1 :(得分:1)
如果你想进行类似的查询,你会想要在描述上有一个全文索引。
另外一般来说,选择*非常慢,所以如果你不需要每一列你应该减少它。