Значение & ldquo; Выбрать оптимизированные таблицы & rdquo; в MySQL Объясните план

есть лучший синтаксис?

Нет. CSS 'or (,) не допускает группировки. Это, по сути, логический оператор с наименьшим приоритетом в селекторах, поэтому вы должны использовать .a.c,.b.c.

42
задан Chandra Patni 2 January 2010 в 18:28
поделиться

3 ответа

Это означает, что вы сделали запрос, который не делает ничего, кроме подсчета количества строк в таблице, и эта таблица является таблицей MyISAM. MyISAM-таблицы хранятся с отдельным подсчетом строк, поэтому для выполнения этого запроса MySQL вообще не нужно смотреть ни на одну из строк таблицы. Вместо этого он немедленно возвращает предварительно рассчитанное количество строк. Следовательно, доступ к таблице "оптимизирован" и запрос выполняется молниеносно.

То же самое не произойдет и на других движках хранения в MySQL, таких как InnoDB. Но на самом деле, вы хотите использовать InnoDB, а не MyISAM в большинстве случаев по целому ряду других причин. (И даже без оптимизации количества строк такой запрос очень, очень быстр.)

select count(comment_count) from wp_posts;

Это то, что Вы действительно хотели сделать? Это то же самое, что и просто SELECT COUNT(*)... (предполагая, что comment_count не может быть NULL, чего не может быть, иначе вы бы не получили оптимизацию). Если вы хотите получить суммарное количество comment_counts, то вы должны использовать SUM(comment_count), и вы не получите поведение 'оптимизировано прочь'.

.
27
ответ дан 26 November 2019 в 22:51
поделиться

Это означает, что таблица полностью оптимизирована вне запроса. Лучше и быть не может.

.
8
ответ дан 26 November 2019 в 22:51
поделиться

Трудно сказать, не видя вашего запроса, но это было бы последствием, если бы вы, например, выбрали постоянное значение --

SELECT 1 FROM atable

или чтобы ответить на вопрос, не требуется одна или несколько ваших таблиц.

.
0
ответ дан 26 November 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: