Как у меня есть фиктивные значения для MySQL "Объяснить"? - PullRequest
0 голосов
/ 06 февраля 2012
var q = 'SELECT * FROM stories_comments WHERE story_id=? AND user_id=? ORDER BY created_at ASC';
    mclient.query(q, [story_id, 0], function(err, results, fields){
        next(err, results);
    });

Например, это мой код.Я хочу объяснить этот запрос в MySQL, но у меня нет значений для размещения story_id.Как мне объяснить это с помощью фиктивного идентификатора?Я хочу, чтобы MySQL дал мне объяснение, как будто story_id был "9", скажем.

По сути, я просто хочу, чтобы MySQL объяснил этот запрос, даже если у меня нет story_id или user_id.

1 Ответ

1 голос
/ 06 февраля 2012

Без значений он не может объяснить запрос, потому что не может оценить количество строк, которые ему нужно просканировать.Это не только для отображения строк в выходных данных объяснения, но и для выбора правильного индекса - если у вас есть индекс для story_id и другой для user_id, он выберет тот, который выбирает меньше строк.И иногда объяснение может видеть, что предложение where вообще не совпадает со строками (и выводит предложение where невозможно)

...