mysql-最快的搜索

时间:2018-08-21 14:01:22

标签: php mysql search

好吧,我已经为我的网站创建了一个搜索字段。当用户放置他的数据时,我用它们来在表的特定列中搜索数据库。

我正在使用以下代码:

$result = mysqli_query($conn, "SELECT * FROM table1 WHERE
column1 LIKE '%{$search}%' OR 
column2 LIKE '%{$search}%' OR
column3 LIKE '%{$search}%' OR
column4 LIKE '%{$search}%' OR
column5 LIKE '%{$search}%' OR .....");

现在,当我在数据库搜索中放置越来越多的信息时,速度变慢。

我知道,当我将许多数据放入数据库中时,它会变慢,但是有什么方法可以更快地进行搜索?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用LIMIT和OFFSET。

您可以通过拆分搜索来代替搜索所有记录。这可以通过分页或无限滚动方法实现

例如,使用分页。我们将为每个页面使用10条记录。

numOffset = numRecords(10) * (page - 1);
numLimit = numRecords(10);


SELECT * from table1 WHERE column1 LIKE '%asd%' LIMIT <numLimit> OFFSET <numOffset>;

OFFSET定义了查询结果的起点。

LIMIT定义了我们要查询的记录数,在这种情况下为10;

如果我们在第3页中,它将为我们提供20的偏移量。我们要从第3页中的20开始,因为已经从第1页和第2页中“查询”了较少的记录。最终查询将为我们提供记录从20开始,加上由于LIMIT而增加的10条记录。

答案 1 :(得分:0)

尝试索引要搜索的每一列。 我认为这是急救。

如果您使用的是phpMyAdmin,则可以打开表结构并在页面中间看到。

enter image description here