如何在表中获取记录自动建议输入,但查询响应非常慢,因为表中有100万条记录


how to get records in a table auto-suggest input but query response very slow because 1 million records in table?

我使用mysql这里是我的查询,我想查询响应快。

我在自动建议输入字段中获得记录,我在表中有一百万条记录,我的查询响应非常慢。

如何在自动建议中快速查询响应?

首先,如果你想要一个详细的答案,你可能需要给我们你的查询。第二,有几件事你可以做:

1 -不要在用户输入的第一个字符上启动自动补全,如果有人开始输入"e",他可能会得到太多不相关的答案…让我们开始在2-3个字符之后寻找自动完成。

2 -正如@Mark Baker所建议的,索引在你的表中是非常重要的,所以确保你所查找的字段都被索引了。

3 -我们需要你的查询这个,但你可能想使用一个更轻的查询做(也许)不同的查询,而不是一个真正沉重的查询。

但是正如我之前所说的,发布你的问题可能会让你得到更详细的答案。

优化查询的方法有很多:

  1. 只选择那些你需要的列,有时我们选择所有的列,即使我们不需要所有

  2. 你的表结构应该像转义重复一样规范化

  3. 如果可能,删除约束,如外键约束。

    例如

    不需要编写SQL来声明字段外键

  4. 使用innoDB数据库引擎,如果没有类似事务