MySQL : Optimize performance of search on varchar column

标签 mysql performance

我有一个客户表,其名称列为 varchar(255)。在应用程序中,我们有按名称搜索功能。该表中有大约 800 万条记录。查询的内容非常明显。

SELECT customer_table_columns FROM customer_table WHERE customer_name 
LIKE '%user input customer name%';

现在这个查询运行速度相当慢(最多需要一分钟)并且让用户烦恼。我想知道是否有办法提高这个查询的性能。

该列有索引,但未定义索引类型。索引类型的选项有 FULLTEXT、PRIMARY 和 UNIQUE。

最佳答案

您的查询运行缓慢,因为搜索字符串开头有通配符(即 %)。

对于这样的查询,MySQL需要进行全表扫描。您对此无能为力。

一种替代方法是使用全文索引来存储名称。这将允许快速搜索名称和单词前缀中的单词。

关于MySQL : Optimize performance of search on varchar column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565407/

相关文章:

java - 为什么32位CPU/OS/Java上的Tomcat 7比64位上的Tomcat 7慢得多?

linux - 在 HTTP 请求上使用 HTTP Keep-alive 的方法

javascript - 这个速记运算符是怎么回事?

jquery - 如何将数据从 MySQL 转换为 jQuery 变量?

mysql - C# 插入所有行还是不插入?

php - 子查询和主查询中的日期之前

java - 选择图片后 Android 性能很糟糕

php - 如何将新项目文件夹连接到现有 MAMP 数据库?

mysql - 如何将秒/分钟放在查询上?

performance - Angular2 在 IE 中运行缓慢并且使用 core-js