Ну, я создал поле поиска для своего сайта. Когда пользователь помещает свои данные, я использую их для поиска в базе данных в определенных столбцах таблицы.
Я использую этот код:
$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 .....");
Теперь, когда я все больше и больше информации в поиске базы данных замедляется.
Я знаю, что когда я поместил много данных в базу данных, он будет замедляться, но есть ли способ поиска быстрее?
Вы можете использовать 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. Мы хотим начать с 20 на странице 3, потому что меньшие записи уже были "запрошены" со страниц 1 и 2. Окончательный запрос даст нам записи, начиная на 20, плюс 10 записей из-за LIMIT.
Попробуйте индексировать каждый столбец, который вы хотите искать. Я думаю, это первая помощь.
если вы используете phpMyAdmin, вы можете открыть структуру таблицы и увидеть ее посередине.