全部产品
Search
文档中心

Lindorm:EXPLAIN

更新时间:Jul 02, 2025

Anda dapat menggunakan sintaks EXPLAIN untuk melihat rencana eksekusi dari sebuah pernyataan SQL. Sebagai contoh, Anda dapat memeriksa apakah indeks digunakan secara efisien dalam pelaksanaan pernyataan kueri untuk mengoptimalkannya.

Mesin dan versi yang berlaku

  • Sintaks EXPLAIN berlaku untuk LindormTable dan LindormTSDB.

  • LindormTable versi 2.6.3 dan lebih baru mendukung rencana eksekusi dengan kedalaman berbeda.

Sintaks

explain_statement         ::= EXPLAIN [ PLAN ] [ explain_depth_expression ] 
                              [ FOR ] select_statement;
explain_depth_expression  ::= { WITH TYPE | WITHOUT IMPLEMENTATION }

Parameter

Kedalaman Rencana (explain_depth_expression)

Penting

Versi Lindorm SQL adalah 2.6.4 atau lebih baru. Untuk informasi lebih lanjut tentang cara melihat versi Lindorm SQL, lihat Versi SQL.

Rencana eksekusi yang dikembalikan oleh sintaks EXPLAIN memiliki kedalaman yang berbeda. Tabel berikut menjelaskan tiga tingkat kedalaman dan cara menentukannya dalam pernyataan.

Kedalaman

Ekspresi Kedalaman

Deskripsi

Rencana Fisik

Tidak Berlaku

Rencana fisik yang dioptimalkan dan difilter oleh pengoptimal.

Rencana Logis

WITHOUT IMPLEMENTATION

Rencana logis yang tidak dioptimalkan.

Rencana Tipe

WITH TYPE

Rencana yang hanya berisi tipe setiap kolom dalam set hasil kueri.

Pernyataan SELECT (select_statement)

Parameter select_statement dalam sintaks adalah pernyataan kueri yang rencana eksekusinya ingin Anda lihat.

Contoh

Dalam contoh-contoh berikut, tabel uji dibuat dengan mengeksekusi pernyataan berikut:

CREATE TABLE test (
    p1 VARCHAR(255) NOT NULL,
    c1 VARCHAR(255),
    PRIMARY KEY (p1)
);

Data ditulis ke beberapa kolom tabel uji dengan mengeksekusi pernyataan berikut:

INSERT INTO test (p1, c1) VALUES
('3abc9378', '10'),
('3def9378', NULL),
('3ghi1234', '15'),
('3jkl5678', NULL),
('3mno9378', '20'),
('3pqr0000', '25'),
('3stu9378', '30'),
('3vwx0000', NULL),
('3yz_9378', '35'),
('3_1239378', '40');

Contoh berikut menunjukkan cara melihat rencana eksekusi dengan kedalaman berbeda untuk pernyataan kueri yang sama:

Lihat rencana fisik

EXPLAIN SELECT POSITION('9378' IN p1) AS lp, COUNT(c1) FROM (SELECT * FROM test WHERE p1 like '3_%') GROUP BY lp ORDER BY lp;

Lihat rencana logis

EXPLAIN WITHOUT IMPLEMENTATION FOR SELECT POSITION('9378' IN p1) AS lp, COUNT(c1) FROM (SELECT * FROM test WHERE p1 like '3_%') GROUP BY lp ORDER BY lp;

Lihat rencana tipe​​

EXPLAIN WITH TYPE FOR SELECT POSITION('9378' IN p1) AS lp, COUNT(c1) FROM (SELECT * FROM test WHERE p1 like '3_%') GROUP BY lp ORDER BY lp;