Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL Equivalent ของ Sybase ASE Command: ใช้ EXPLAIN

MySQL ใช้ EXPLAIN แทน Sybase ASE SHOWPLAN / SET SHOWPLAN ON

Sybase ASE ใช้ SET SHOWPLAN ON หรือ SHOWPLAN สำหรับดู Query Plan MySQL ใช้ EXPLAIN (หรือ EXPLAIN ANALYZE ใน 8.0+)

สร้างตาราง พร้อม Index

mysql> CREATE TABLE DemoTable1531 (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20)
    -> );
Query OK, 0 rows affected (2.92 sec)

mysql> CREATE INDEX Name_index1 ON DemoTable1531(StudentName);
Query OK, 0 rows affected (0.99 sec)

เพิ่มข้อมูล

mysql> INSERT INTO DemoTable1531(StudentName) VALUES
    -> ('Chris'), ('Robert'), ('David'), ('Mike'), ('Carol');
Query OK, 5 rows affected

คำสั่ง EXPLAIN

mysql> EXPLAIN SELECT * FROM DemoTable1531 WHERE StudentName = 'Mike';

ผลลัพธ์ EXPLAIN

+----+-------------+---------------+------------+------+---------------+-------------+---------+-------+------+----------+-------------+
| id | select_type | table         | partitions | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra       |
+----+-------------+---------------+------------+------+---------------+-------------+---------+-------+------+----------+-------------+
|  1 | SIMPLE      | DemoTable1531 | NULL       | ref  | Name_index1   | Name_index1 | 63      | const |    1 |   100.00 | Using index |
+----+-------------+---------------+------------+------+---------------+-------------+---------+-------+------+----------+-------------+

การตีความ

  • type: ref - ใช้ Non-unique Index Lookup (ดี)
  • key: Name_index1 - ใช้ Index ที่สร้างไว้
  • rows: 1 - คาดว่าอ่าน 1 แถว
  • Extra: Using index - Covering Index (SELECT * แต่ Index มีทุกคอลัมน์ที่ต้องการ)

MySQL EXPLAIN Formats

Sybase ASE vs MySQL คำสั่งเทียบเท่า

Formatคำสั่งคุณสมบัติ
TraditionalEXPLAIN SELECT ...ตาราง ASCII, Readable
JSONEXPLAIN FORMAT=JSON SELECT ...รายละเอียดมาก, Machine-readable
TREE (8.0.16+)EXPLAIN FORMAT=TREE SELECT ...Tree Structure, 易读
ANALYZE (8.0.18+)EXPLAIN ANALYZE SELECT ...รันจริง + วัดเวลา + Actual Rows
Sybase ASEMySQLคำอธิบาย
SET SHOWPLAN ONEXPLAINดู Query Plan
SET STATISTICS IO ONEXPLAIN ANALYZE / SET profiling=1ดู I/O Stats
sp_helpindexSHOW INDEX FROM tableดู Index
UPDATE STATISTICSANALYZE TABLEอัปเดต Statistics