Mysql 优化sql搜索时间
我有一个关于如何通过mySQL数据库优化搜索时间的问题。整个数据库存储在一个表中,该表包含以下列:视频链接、图像链接、描述、长度和站点。到目前为止,我有1200000行,当所有这些都说了和做了的时候,我将扩展到10000000行。当我运行搜索查询时,如:Mysql 优化sql搜索时间,mysql,sql,Mysql,Sql,我有一个关于如何通过mySQL数据库优化搜索时间的问题。整个数据库存储在一个表中,该表包含以下列:视频链接、图像链接、描述、长度和站点。到目前为止,我有1200000行,当所有这些都说了和做了的时候,我将扩展到10000000行。当我运行搜索查询时,如: SELECT * FROM `VIDEOS` WHERE `DESCRIPTION` LIKE '%search_string%' 需要1.3808秒才能完成。这不是一个糟糕的搜索时间,但当行数加倍时,它将是。我应该提到的是,该数据
SELECT *
FROM `VIDEOS`
WHERE `DESCRIPTION` LIKE '%search_string%'
需要1.3808秒才能完成。这不是一个糟糕的搜索时间,但当行数加倍时,它将是。我应该提到的是,该数据库正在网站上使用,搜索栏对该数据库进行查询并返回结果。大多数网站的存储空间更大,搜索速度更快。有没有办法提高性能
CREATE FULLTEXT INDEX
fx_videos_description
ON videos (description);
SELECT *
FROM videos
WHERE MATCH(description, '+search_string' IN BOOLEAN MODE);
这只适用于MySQL 5.6之前的MyISAM表。如果您想进行类似的查询,您需要在描述上有一个全文索引
一般来说,select*的速度相当慢,因此如果不需要每一列,就应该将其缩减。使用反勾号表示MySQL,因此我删除了SQL Server标记。请查看使用全文索引。这是优化这种查询的唯一方法:您可能还需要考虑外部的全文搜索解决方案,如狮身人面像或Lucene,如果您期望高流量的话。MySQL fulltext与那些相比性能相当差。Quassnoi看起来不错,但我使用hostgator作为托管服务,我不认为他们提供这些或任何类似的服务。Gordon fulltext工作得非常好,平均速度低于300m/s谢谢=)我该如何降低这一点。如果您正在搜索视频,是否不必查询所有描述以尝试查找匹配项?选择*不是指查询所有描述,而是指您想要返回的信息。我不知道您是如何应用这些信息的,但如果您并不总是需要所有这些信息,那么就不应该从SQL查询这些信息。老实说,如果您没有全文索引,它应该可以解决大多数性能问题。