SHOW META [ LIKE pattern ]
SHOW META
is an SQL statement that displays additional meta-information about the processed query, including the query time, keyword statistics, and information about the secondary indexes used. The syntax is:
The included items are:
total
: The number of matches that were actually retrieved and sent to the client. This value is typically limited by the LIMIT/size search option.total_found
:- The estimated total number of matches for the query in the index. If you need the exact number of matches, use
SELECT COUNT(*)
instead of relying on this value. - For queries with
GROUP BY
,total_found
represents the number of groups instead of individual matches. - For GROUP N BY queries,
total_found
still represents the number of groups, regardless of the value ofN
.
- The estimated total number of matches for the query in the index. If you need the exact number of matches, use
total_relation
: Indicates whether thetotal_found
value is exact or an estimate.- If Manticore cannot determine the precise
total_found
value, this field will displaytotal_relation: gte
, meaning the actual number of matches is Greater Than or Equal to the reportedtotal_found
. - If the
total_found
value is exact,total_relation: eq
will be displayed.
- If Manticore cannot determine the precise
time
: The duration (in seconds) it took to process the search query.keyword[N]
: The n-th keyword used in the search query. Note that the keyword can be presented as a wildcard, e.g.,abc*
.docs[N]
: The total number of documents (or records) containing the n-th keyword from the search query. If the keyword is presented as a wildcard, this value represents the sum of documents for all expanded sub-keywords, potentially exceeding the actual number of matched documents.hits[N]
: The total number of occurrences (or hits) of the n-th keyword across all documents.index
: Information about the utilized index (e.g., secondary index).
- SQL
SELECT id, story_author FROM hn_small WHERE MATCH('one|two|three') and comment_ranking > 2 limit 5;
show meta;
+---------+--------------+
| 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
can display I/O and CPU counters, but they will only be available if searchd was started with the --iostats
and --cpustats
switches, respectively.
- SQL
SELECT id,channel_id FROM records WHERE MATCH('one|two|three') limit 5;
SHOW META;
+--------+--------------+
| 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)
Additional values, such as predicted_time
, dist_predicted_time
, local_fetched_docs
, local_fetched_hits
, local_fetched_skips
, and their respective dist_fetched_*
counterparts, will only be available if searchd
was configured with predicted time costs and the query included predicted_time
in the OPTION
clause.
- SQL
SELECT id,story_author FROM hn_small WHERE MATCH('one|two|three') limit 5 option max_predicted_time=100;
SHOW META;
+--------+--------------+
| 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
must be executed immediately after the query in the same session. Since some MySQL connectors/libraries use connection pools, running SHOW META
in a separate statement can lead to unexpected results, such as retrieving metadata from another query. In these cases (and generally recommended), run a multiple statement containing both the query and SHOW META
. Some connectors/libraries support multi-queries within the same method for a single statement, while others may require the use of a dedicated method for multi-queries or setting specific options during connection setup.
- SQL
SELECT id,story_author FROM hn_small WHERE MATCH('one|two|three') LIMIT 5; SHOW META;
+--------+--------------+
| 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)
You can also use the optional LIKE clause, which allows you to select only the variables that match a specific pattern. The pattern syntax follows standard SQL wildcards, where %
represents any number of any characters, and _
represents a single character.
- SQL
SHOW META LIKE 'total%';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| total | 5 |
| total_found | 266385 |
| total_relation | eq |
+----------------+--------+
3 rows in set (0.00 sec)
When utilizing faceted search, you can examine the multiplier
field in the SHOW META
output to determine how many queries were executed in an optimized group.
- SQL
SELECT * FROM facetdemo FACET brand_id FACET price FACET categories;
SHOW META LIKE 'multiplier';
+------+-------+----------+---------------------+-------------+-------------+---------------------------------------+------------+
| 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)
When the cost-based query optimizer chooses to use DocidIndex
, ColumnarScan
, or SecondaryIndex
instead of a plain filter, this is reflected in the SHOW META
command.
The index
variable displays the names and types of secondary indexes used during query execution. The percentage indicates how many disk chunks (in the case of an RT table) or pseudo shards (in the case of a plain table) utilized the secondary index.
- SQL
SELECT count(*) FROM taxi1 WHERE tip_amount = 5;
SHOW META;
+----------------+----------------------------------+
| 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
can be used after executing a CALL PQ statement, in which case it provides different output.
SHOW META
following a CALL PQ
statement includes:
Total
- Total time spent on matching the document(s)Queries matched
- Number of stored queries that match the document(s)Document matches
- Number of documents that matched the queries stored in the tableTotal queries stored
- Total number of queries stored in the tableTerm only queries
- Number of queries in the table that have terms; the remaining queries use extended query syntax.
- SQL
CALL PQ ('pq', ('{"title":"angry", "gid":3 }')); SHOW META;
+------+
| id |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
+-----------------------+-----------+
| 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)
Using CALL PQ
with a verbose
option provides more detailed output.
It includes the following additional entries:
Setup
- Time spent on the initial setup of the matching process, such as parsing docs and setting optionsQueries failed
- Number of queries that failedFast rejected queries
- Number of queries that were not fully evaluated but quickly matched and rejected using filters or other conditionsTime per query
- Detailed time for each queryTime of matched queries
- Total time spent on queries that matched any documents
- SQL
CALL PQ ('pq', ('{"title":"angry", "gid":3 }'), 1 as verbose); SHOW META;
+------+
| id |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
+-------------------------+-----------+
| 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)
SHOW THREADS [ OPTION columns=width[,format=sphinxql][,format=all] ]
SHOW THREADS
is an SQL statement that displays information about all threads and their current activities.
The resulting table contains the following columns:
TID
: ID assigned to the thread by the kernelName
: Thread name, also visible intop
,htop
,ps
, and other process-viewing toolsProto
: Connection protocol; possible values includesphinx
,mysql
,http
,ssl
,compressed
,replication
, or a combination (e.g.,http,ssl
orcompressed,mysql
)State
: Thread state; possible values arehandshake
,net_read
,net_write
,query
,net_idle
Connection from
: Client'sip:port
ConnID
: Connection ID (starting from 0)This/prev job time
: When the thread is busy - how long the current job has been running; when the thread is idling - previous job duration + suffixprev
Jobs done
: Number of jobs completed by this threadThread status
:idling
orworking
Info
: Information about the query, which may include multiple queries if the query targets a distributed table or a real-time table
- SQL
- JSON
- PHP
- Python
- javascript
- Java
- C#
- TypeScript
- Go
SHOW THREADS;
*************************** 1. row ***************************
TID: 83
Name: work_1
Proto: mysql
State: query
Connection from: 172.17.0.1:43300
ConnID: 8
This/prev job time: 630us
CPU activity: 94.15%
Jobs done: 2490
Thread status: working
Info: SHOW THREADS
*************************** 2. row ***************************
TID: 84
Name: work_2
Proto: mysql
State: query
Connection from: 172.17.0.1:43301
ConnID: 9
This/prev job time: 689us
CPU activity: 89.23%
Jobs done: 1830
Thread status: working
Info: show threads
The Info
column displays:
- Raw text of queries executed via the Manticore SQL interface
- Full text syntax, comments, and data size for queries run through the internal Manticore binary protocol (e.g., from a remote Manticore instance)
You can limit the maximum width of the Info
column by specifying the columns=N
option.
By default, queries are displayed in their original format. However, when the format=sphinxql
option is used, queries will be shown in SQL format, regardless of the protocol used for execution.
Using format=all
will show all threads, while idling and system threads are hidden without this option (e.g., those busy with OPTIMIZE).
- SQL
- JSON
- PHP
- Python
- javascript
- Java
- C#
- TypeScript
- Go
SHOW THREADS OPTION columns=30\G
SHOW QUERIES
NOTE:
SHOW QUERIES
requires Manticore Buddy. If it doesn't work, make sure Buddy is installed.
SHOW QUERIES
returns information about all currently running queries. The output is a table with the following structure:
id
: Query ID that can be used in KILL to terminate the queryquery
: Query statement or a portion of ittime
: Time taken on command execution or how long ago the query was performed (in this case, the value will includeago
)protocol
: Connection protocol, with possible values beingsphinx
,mysql
,http
,ssl
,compressed
,replication
, or a combination (e.g.,http,ssl
orcompressed,mysql
)host
: Client'sip:port
- SQL
mysql> SHOW QUERIES;
+------+--------------+---------+----------+-----------------+
| id | query | time | protocol | host |
+------+--------------+---------+----------+-----------------+
| 111 | select | 5ms ago | http | 127.0.0.1:58986 |
| 96 | SHOW QUERIES | 255us | mysql | 127.0.0.1:33616 |
+------+--------------+---------+----------+-----------------+
2 rows in set (0.61 sec)
Refer to SHOW THREADS if you'd like to gain insight from the perspective of the threads themselves.