Вам необходимо узнать об индексах. Если вы настроили индекс для столбца (или столбцов), MYSQL может искать и сортировать вопросы намного быстрее. Попробуйте добавить несколько индексов.
Я бы начал со столбцов removeAt
, chatId
, fromUserId
, toUserId
. Вы также можете поэкспериментировать со сложными индексами (removeAt
+ chatId
<- в этом порядке или <code>fromUserId + toUserId
).
После добавления индексов запустите команду EXPLAIN
для ваших запросов (например, . EXPLAIN SELECT * FROM messages WHERE chatId = 5 AND id < 10 AND removeAt = 0 ORDER BY id DESC LIMIT 20
). В результатах вы должны увидеть, какие индексы, где это возможно, и какие индексы использовались MySQL.
Стоит отметить, что не добавляйте слишком много индексов («на всякий случай»), потому что они будут замедлять добавление новых строк в базу данных.
Чтобы добавить индекс go в табличное представление в phpMyAdmin (структура) и выберите столбец, для которого вы хотите добавить индекс. Затем нажмите index
под столбцами: Вам нужно добавить индексы один за другим. Если вы выберете более одного столбца, он создаст один комплексный индекс.