mysql-最快搜索

ercv8c1e  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(277)

嗯,我已经为我的网站创建了一个搜索字段。当用户输入数据时,我使用它们在数据库中表的特定列中进行搜索。
我正在使用此代码:

$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 .....");

现在,当我把越来越多的信息放进数据库时,搜索速度变慢了。
我知道,当我把许多数据放进数据库时,它会变慢,但有什么方法可以更快地搜索吗?

von4xj4u

von4xj4u1#

您可以尝试使用限制和偏移。
您可以通过拆分搜索来代替搜索所有记录。这可以通过分页或无限滚动的方法来实现
我们以分页为例。我们每一页用10条记录。

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

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

偏移量定义了查询结果的起点。
限制定义了我们要查询多少条记录,在本例中是10条;
如果我们在第三页,它会给我们一个20的偏移量。我们想从第3页的20开始,因为较小的记录已经从第1页和第2页被“查询”了。最后的查询将给我们从20开始的记录,加上10个记录由于限制。

sqougxex

sqougxex2#

尝试索引要搜索的每一列。我想这是急救。
如果您使用的是phpmyadmin,那么可以打开表结构并查看页面中间的内容。

相关问题