好吧,我已经为我的网站创建了一个搜索字段。当用户放置他的数据时,我用它们来在表的特定列中搜索数据库。
我正在使用以下代码:
$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 .....");
现在,当我在数据库搜索中放置越来越多的信息时,速度变慢。
我知道,当我将许多数据放入数据库中时,它会变慢,但是有什么方法可以更快地进行搜索?
答案 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)