≫ Информация об узле и управление

SHOW META

SHOW META [ LIKE pattern ]

SHOW META — это SQL-запрос, который отображает дополнительную метаинформацию о выполненном запросе, включая время выполнения, статистику по ключевым словам и информацию об использованных вторичных индексах. Синтаксис:

Включенные элементы:

  • total: Количество совпадений, которые были фактически извлечены и отправлены клиенту. Это значение обычно ограничивается параметром поиска LIMIT/size.
  • total_found:
    • Оценочное общее количество совпадений для запроса в индексе. Если вам нужно точное количество совпадений, используйте SELECT COUNT(*) вместо того, чтобы полагаться на это значение.
    • Для запросов с GROUP BY, total_found представляет количество групп, а не отдельных совпадений.
    • При использовании HAVING с GROUP BY, total_found отражает количество групп после применения фильтра HAVING. Это обеспечивает правильную постраничную навигацию с условиями HAVING.
    • Для запросов GROUP N BY, total_found по-прежнему представляет количество групп, независимо от значения N.
  • total_relation: Указывает, является ли значение total_found точным или оценочным.
    • Если Manticore не может определить точное значение total_found, в этом поле будет отображаться total_relation: gte, что означает, что фактическое количество совпадений Больше или Равно указанному total_found.
    • Если значение total_found точное, будет отображено total_relation: eq.
  • time: Время (в секундах), затраченное на обработку поискового запроса.
  • keyword[N]: N-ное ключевое слово, использованное в поисковом запросе. Обратите внимание, что ключевое слово может быть представлено в виде шаблона, например, abc*.
  • docs[N]: Общее количество документов (или записей), содержащих N-ное ключевое слово из поискового запроса. Если ключевое слово представлено в виде шаблона, это значение представляет собой сумму документов для всех раскрытых под-ключевых слов, потенциально превышая фактическое количество совпавших документов.
  • hits[N]: Общее количество вхождений (или попаданий) N-ного ключевого слова во всех документах.
  • index: Информация об использованном индексе (например, вторичный индекс).
‹›
  • SQL
SQL
📋
SELECT id, story_author FROM hn_small WHERE MATCH('one|two|three') and comment_ranking > 2 limit 5;
show meta;
‹›
Response
+---------+--------------+
| id      | story_author |
+---------+--------------+
|  151171 | anewkid      |
|  302758 | bks          |
|  805806 | drRoflol     |
| 1099245 | tnorthcutt   |
|  303252 | whiten       |
+---------+--------------+
5 rows in set (0.00 sec)
+----------------+---------------------------------------+
| Variable_name  | Value                                 |
+----------------+---------------------------------------+
| total          | 5                                     |
| total_found    | 2308                                  |
| total_relation | eq                                    |
| time           | 0.001                                 |
| keyword[0]     | one                                   |
| docs[0]        | 224387                                |
| hits[0]        | 310327                                |
| keyword[1]     | three                                 |
| docs[1]        | 18181                                 |
| hits[1]        | 21102                                 |
| keyword[2]     | two                                   |
| docs[2]        | 63251                                 |
| hits[2]        | 75961                                 |
| index          | comment_ranking:SecondaryIndex (100%) |
+----------------+---------------------------------------+
14 rows in set (0.00 sec)

SHOW META может отображать счетчики ввода-вывода и процессора, но они будут доступны только в том случае, если searchd был запущен с ключами --iostats и --cpustats соответственно.

‹›
  • SQL
SQL
📋
SELECT id,channel_id FROM records WHERE MATCH('one|two|three') limit 5;
SHOW META;
‹›
Response
+--------+--------------+
| id     | story_author |
+--------+--------------+
| 300263 | throwaway37  |
| 713503 | mahmud       |
| 716804 | mahmud       |
| 776906 | jimbokun     |
| 753332 | foxhop       |
+--------+--------------+
5 rows in set (0.01 sec)
+-----------------------+--------+
| Variable_name         | Value  |
+-----------------------+--------+
| total                 | 5      |
| total_found           | 266385 |
| total_relation        | eq     |
| time                  | 0.011  |
| cpu_time              | 18.004 |
| agents_cpu_time       | 0.000  |
| io_read_time          | 0.000  |
| io_read_ops           | 0      |
| io_read_kbytes        | 0.0    |
| io_write_time         | 0.000  |
| io_write_ops          | 0      |
| io_write_kbytes       | 0.0    |
| agent_io_read_time    | 0.000  |
| agent_io_read_ops     | 0      |
| agent_io_read_kbytes  | 0.0    |
| agent_io_write_time   | 0.000  |
| agent_io_write_ops    | 0      |
| agent_io_write_kbytes | 0.0    |
| keyword[0]            | one    |
| docs[0]               | 224387 |
| hits[0]               | 310327 |
| keyword[1]            | three  |
| docs[1]               | 18181  |
| hits[1]               | 21102  |
| keyword[2]            | two    |
| docs[2]               | 63251  |
| hits[2]               | 75961  |
+-----------------------+--------+
27 rows in set (0.00 sec)

Дополнительные значения, такие как predicted_time, dist_predicted_time, local_fetched_docs, local_fetched_hits, local_fetched_skips и их соответствующие аналоги dist_fetched_*, будут доступны только в том случае, если searchd был настроен с предсказанными временными затратами и запрос включал predicted_time в предложении OPTION.

‹›
  • SQL
SQL
📋
SELECT id,story_author FROM hn_small WHERE MATCH('one|two|three') limit 5 option max_predicted_time=100;
SHOW META;
‹›
Response
+--------+--------------+
| id     | story_author |
+--------+--------------+
| 300263 | throwaway37  |
| 713503 | mahmud       |
| 716804 | mahmud       |
| 776906 | jimbokun     |
| 753332 | foxhop       |
+--------+--------------+
5 rows in set (0.01 sec)
mysql> show meta;
+---------------------+--------+
| Variable_name       | Value  |
+---------------------+--------+
| total               | 5      |
| total_found         | 266385 |
| total_relation      | eq     |
| time                | 0.012  |
| local_fetched_docs  | 307212 |
| local_fetched_hits  | 407390 |
| local_fetched_skips | 24     |
| predicted_time      | 56     |
| keyword[0]          | one    |
| docs[0]             | 224387 |
| hits[0]             | 310327 |
| keyword[1]          | three  |
| docs[1]             | 18181  |
| hits[1]             | 21102  |
| keyword[2]          | two    |
| docs[2]             | 63251  |
| hits[2]             | 75961  |
+---------------------+--------+
17 rows in set (0.00 sec)

SHOW META должен быть выполнен сразу после запроса в той же сессии. Поскольку некоторые коннекторы/библиотеки MySQL используют пулы соединений, выполнение SHOW META в отдельном запросе может привести к неожиданным результатам, например, к получению метаданных от другого запроса. В таких случаях (и вообще рекомендуется) выполните множественный запрос, содержащий как сам запрос, так и SHOW META. Некоторые коннекторы/библиотеки поддерживают мульти-запросы в рамках одного метода для одного оператора, в то время как другие могут требовать использования специального метода для мульти-запросов или установки определенных опций при настройке соединения.

‹›
  • SQL
SQL
📋
SELECT id,story_author FROM hn_small WHERE MATCH('one|two|three') LIMIT 5; SHOW META;
‹›
Response
+--------+--------------+
| id     | story_author |
+--------+--------------+
| 300263 | throwaway37  |
| 713503 | mahmud       |
| 716804 | mahmud       |
| 776906 | jimbokun     |
| 753332 | foxhop       |
+--------+--------------+
5 rows in set (0.01 sec)
+----------------+--------+
| Variable_name  | Value  |
+----------------+--------+
| total          | 5      |
| total_found    | 266385 |
| total_relation | eq     |
| time           | 0.011  |
| keyword[0]     | one    |
| docs[0]        | 224387 |
| hits[0]        | 310327 |
| keyword[1]     | three  |
| docs[1]        | 18181  |
| hits[1]        | 21102  |
| keyword[2]     | two    |
| docs[2]        | 63251  |
| hits[2]        | 75961  |
+----------------+--------+
13 rows in set (0.00 sec)

Вы также можете использовать необязательное предложение LIKE, которое позволяет выбрать только переменные, соответствующие определенному шаблону. Синтаксис шаблона следует стандартным SQL-подстановочным знакам, где % представляет любое количество любых символов, а _ представляет один символ.

‹›
  • SQL
SQL
📋
SHOW META LIKE 'total%';
‹›
Response
+----------------+--------+
| Variable_name  | Value  |
+----------------+--------+
| total          | 5      |
| total_found    | 266385 |
| total_relation | eq     |
+----------------+--------+
3 rows in set (0.00 sec)

SHOW META и фасеты

При использовании фасетного поиска вы можете изучить поле multiplier в выводе SHOW META, чтобы определить, сколько запросов было выполнено в оптимизированной группе.

‹›
  • SQL
SQL
📋
SELECT * FROM facetdemo FACET brand_id FACET price FACET categories;
SHOW META LIKE 'multiplier';
‹›
Response
+------+-------+----------+---------------------+-------------+-------------+---------------------------------------+------------+
| id   | price | brand_id | title               | brand_name  | property    | j                                     | categories |
+------+-------+----------+---------------------+-------------+-------------+---------------------------------------+------------+
|    1 |   306 |        1 | Product Ten Three   | Brand One   | Six_Ten     | {"prop1":66,"prop2":91,"prop3":"One"} | 10,11      |
...
+----------+----------+
| brand_id | count(*) |
+----------+----------+
|        1 |     1013 |
...
+-------+----------+
| price | count(*) |
+-------+----------+
|   306 |        7 |
...
+------------+----------+
| categories | count(*) |
+------------+----------+
|         10 |     2436 |
...
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| multiplier    | 4     |
+---------------+-------+
1 row in set (0.00 sec)

SHOW META и оптимизатор запросов

Когда оптимизатор запросов на основе стоимости выбирает использование DocidIndex, ColumnarScan или SecondaryIndex вместо простого фильтра, это отражается в команде SHOW META.

Переменная index отображает имена и типы вторичных индексов, использованных во время выполнения запроса. Процент показывает, сколько дисковых чанков (в случае RT-таблицы) или псевдо-шардов (в случае обычной таблицы) использовали вторичный индекс.

‹›
  • SQL
SQL
📋
SELECT count(*) FROM taxi1 WHERE tip_amount = 5;
SHOW META;
‹›
Response
+----------------+----------------------------------+
| Variable_name  | Value                            |
+----------------+----------------------------------+
| total          | 1                                |
| total_found    | 1                                |
| total_relation | eq                               |
| time           | 0.016                            |
| index          | tip_amount:SecondaryIndex (100%) |
+----------------+----------------------------------+
5 rows in set (0.00 sec)

SHOW META для PQ-таблиц

SHOW META может использоваться после выполнения оператора CALL PQ, в этом случае он предоставляет другой вывод.

SHOW META после оператора CALL PQ включает:

  • total - Общее время, затраченное на сопоставление документа(ов)
  • queries_matched - Количество сохраненных запросов, соответствующих документу(ам)
  • document_matches - Количество документов, которые соответствуют запросам, сохраненным в таблице
  • total_queries_stored - Общее количество запросов, сохраненных в таблице
  • term_only_queries - Количество запросов в таблице, которые содержат термины; остальные запросы используют расширенный синтаксис запросов.
‹›
  • SQL
SQL
📋
CALL PQ ('pq', ('{"title":"angry", "gid":3 }')); SHOW META;
‹›
Response
+------+
| id   |
+------+
|    2 |
+------+
1 row in set (0.00 sec)
+-----------------------+-----------+
| Variable name         | Value     |
+-----------------------+-----------+
| total                 | 0.000 sec |
| queries_matched       | 1         |
| queries_failed        | 0         |
| document_matched      | 1         |
| total_queries_stored  | 2         |
| term_only_queries     | 2         |
| fast_rejected_queries | 1         |
+-----------------------+-----------+
7 rows in set (0.00 sec)

Использование CALL PQ с опцией verbose предоставляет более детализированный вывод.

Он включает следующие дополнительные записи:

  • Setup - Время, затраченное на первоначальную настройку процесса сопоставления, такое как разбор документов и установка опций
  • Queries failed - Количество запросов, которые завершились неудачей
  • Fast rejected queries - Количество запросов, которые не были полностью оценены, но быстро сопоставлены и отклонены с использованием фильтров или других условий
  • Time per query - Детальное время для каждого запроса
  • Time of matched queries - Общее время, затраченное на запросы, которые соответствовали каким-либо документам
‹›
  • SQL
SQL
📋
CALL PQ ('pq', ('{"title":"angry", "gid":3 }'), 1 as verbose); SHOW META;
‹›
Response
+------+
| id   |
+------+
|    2 |
+------+
1 row in set (0.00 sec)
+-------------------------+-----------+
| Variable name           | Value     |
+-------------------------+-----------+
| total                   | 0.000 sec |
| setup                   | 0.000 sec |
| queries_matched         | 1         |
| queries_failed          | 0         |
| document_matched        | 1         |
| total_queries_stored    | 2         |
| term_only_queries       | 2         |
| fast_rejected_queries   | 1         |
| time_per_query          | 69        |
| time_of_matched_queries | 69        |
+-------------------------+-----------+
10 rows in set (0.00 sec)
Last modified: November 17, 2025