У нас есть запрос CakePHP, который действительно начинает пугать наш сервер. Проблема в том, что огромное количество записей возвращается и разбивается на страницы. Если пользователь подходит к концу разбивки на страницы (например, стр. 60 000), запросы занимают огромное количество времени, а наши ракетные ракеты с процессором. Прежде чем мы откажемся и закроем количество записей разбиения на страницы, мы хотели бы хотя бы попытаться сделать наш запрос более эффективным.CakePHP: поиск в конце строки
Мы знаем, что проблема связана с поздним поиском строк, и мы знаем, что существуют решения (например, это https://explainextended.com/2011/02/11/late-row-lookups-innodb/), однако нам сложно переместить стандартный запрос CakePHP на то, что нам поможет.
Это наш торт запрос:
$pagination = array(
'Sentence' => array(
'fields' => $fields,
'contain' => $contain,
'conditions' => array(
'text' => $text,
),
'limit' => CurrentUser::getSetting('per_page'),
'order' => "Sentence.id desc"
)
);
$ содержат несколько отношений, два из которых более чем один слой глубокий:
Array
(
[Favorites_users] => Array
(
[fields] => Array
(
)
)
[User] => Array
(
[fields] => Array
(
[0] => id
[1] => username
[2] => group_id
[3] => level
)
)
[SentencesList] => Array
(
[fields] => Array
(
[0] => id
)
)
[Transcription] => Array
(
[User] => Array
(
[fields] => Array
(
[0] => username
)
)
)
[Translation] => Array
(
[Transcription] => Array
(
[User] => Array
(
[fields] => Array
(
[0] => username
)
)
)
)
)
Мы можем получить базовый приговорить данные таблицы с этим необработанный запрос:
SELECT {$lFields}
FROM (
SELECT {$fields}
FROM sentences AS Sentence
ORDER BY
id DESC
LIMIT 10
) q
JOIN sentences l
ON l.id = q.id
ORDER BY
q.id DESC
Однако это не приводит к каким-либо отношениям, и Cake действительно не согласен с выходным форматом.
Итак, можно ли получить Cake для запроса, который минимизирует время поиска в конце строки?
Всегда упоминайте свою точную версию CakePHP! В разных версиях проблемы могут быть решены по-разному. – ndm
А, простите об этом. Это приложение 1.3 для тортов. Да, знаю..... –