全部产品
Search
文档中心

PolarDB:Skema

更新时间:Jul 02, 2025

Topik ini menjelaskan skema tabel dan bidang terkait dari tabel mysql.sql_sharing dan information_schema.sql_sharing yang digunakan oleh fitur SQL Trace.

mysql.sql_sharing

Tabel sql_sharing adalah tabel sistem InnoDB dalam database PolarDB untuk MySQL. Tabel ini digunakan untuk menyimpan pernyataan SQL tertentu yang perlu dilacak. Contoh berikut menunjukkan skema tabel sql_sharing.

Catatan

Tabel sql_sharing dibuat secara otomatis oleh sistem saat startup.

CREATE TABLE `sql_sharing` (
  `Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `Sql_id` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `Schema_name` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `Type` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `Digest_text` longtext COLLATE utf8_bin,
  `Plan_id` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `Plan` text COLLATE utf8_bin,
  `Version` int(11) unsigned DEFAULT NULL,
  `Create_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
  `Update_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
  `Extra_info` longtext COLLATE utf8_bin,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `sqlid_schema_type` (`Sql_id`,`Schema_name`,`Type`)
) /*!50100 TABLESPACE `mysql` */ ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Tabel berikut menjelaskan bidang-bidang dalam skema tabel tersebut.

Bidang

Deskripsi

Id

ID auto-increment dari baris data di tabel mysql.sql_sharing.

Sql_id

ID dari pernyataan SQL yang telah di-template.

Schema_name

Nama skema tempat pernyataan SQL dieksekusi.

Type

Fitur yang menggunakan rekaman tersebut.

Digest_text

Isi dari pernyataan SQL yang telah di-template.

Plan_id

ID dari rencana eksekusi.

Plan

Nama dari rencana eksekusi.

Version

Nomor versi rekaman dalam sistem.

Create_time

Waktu ketika rekaman dimasukkan.

Update_time

Waktu ketika rekaman diperbarui.

Extra_info

Informasi tambahan yang direkam oleh sistem.

information_schema.sql_sharing

Tabel memori sql_sharing dalam database information_schema digunakan untuk mencatat rencana eksekusi dari pernyataan SQL yang dilacak oleh fitur SQL Trace serta mengumpulkan statistik tentang eksekusi pernyataan SQL tersebut. Tabel ini memiliki skema berikut.

Catatan

Tabel sql_sharing dibuat secara otomatis oleh sistem saat startup.

CREATE TEMPORARY TABLE `SQL_SHARING` (
  `TYPE` varchar(16) DEFAULT NULL,
  `SQL_ID` varchar(64) DEFAULT NULL,
  `SCHEMA_NAME` varchar(64) DEFAULT NULL,
  `DIGEST_TEXT` varchar(2048) DEFAULT NULL,
  `PLAN_ID` varchar(64) DEFAULT NULL,
  `PLAN` varchar(1024) DEFAULT NULL,
  `PLAN_EXTRA` varchar(1024) DEFAULT NULL,
  `ERROR_CODE` bigint(21) DEFAULT NULL,
  `REF_BY` varchar(512) DEFAULT NULL,
  `FIRST_LOAD_TIME` datetime DEFAULT NULL,
  `LAST_HIT_TIME` datetime DEFAULT NULL,
  `EXECUTIONS` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_WAIT_TIME` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_WAIT_TIME` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_WAIT_TIME` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_EXEC_TIME` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_EXEC_TIME` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_EXEC_TIME` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_ROWS_SENT` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_ROWS_SENT` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_ROWS_SENT` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_ROWS_EXAMINED` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_ROWS_EXAMINED` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_ROWS_EXAMINED` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_ROWS_AFFECTED` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_ROWS_AFFECTED` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_ROWS_AFFECTED` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_LOGICAL_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_LOGICAL_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_LOGICAL_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_PHY_SYNC_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_PHY_SYNC_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_PHY_SYNC_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `SUM_PHY_ASYNC_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MIN_PHY_ASYNC_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `MAX_PHY_ASYNC_READ` bigint(21) unsigned NOT NULL DEFAULT '0',
  `EXTRA` varchar(1024) DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8;

Tabel berikut menjelaskan bidang-bidang dalam skema tabel tersebut.

Bidang

Deskripsi

TYPE

Jenis rekaman. Nilai valid:

  • SQL: pernyataan SQL yang telah di-template.

  • PLAN: rencana eksekusi yang dihasilkan saat pernyataan SQL yang telah di-template sedang dieksekusi.

SQL_ID

ID dari pernyataan SQL yang telah di-template.

SCHEMA_NAME

Nama skema tempat pernyataan SQL dieksekusi.

DIGEST_TEXT

Isi dari pernyataan SQL yang telah di-template.

PLAN_ID

ID dari rencana eksekusi.

PLAN

Nama dari rencana eksekusi.

PLAN_EXTRA

Informasi tambahan, seperti metode apa yang digunakan untuk mengakses tabel dan apakah menggunakan protokol pernyataan yang disiapkan untuk mengeksekusi pernyataan SQL yang telah di-template pada tabel. Anda dapat memindai seluruh tabel, memilih rentang indeks, dan menggunakan indeks yang sama untuk mengakses tabel.

ERROR_CODE

Kode kesalahan.

REF_BY

Fitur yang menggunakan pernyataan SQL atau rencana eksekusi. Nilai valid:

  • SQL_TRACE: Semua pernyataan dilacak.

  • SQL_TRACE(DEMAND): Pernyataan SQL tertentu dilacak.

FIRST_LOAD_TIME

Waktu ketika pernyataan SQL dan rencana eksekusi pertama kali dicatat di memori.

LAST_HIT_TIME

Waktu ketika pernyataan SQL dan rencana eksekusi terakhir dieksekusi.

EXECUTIONS

Total eksekusi dari pernyataan SQL yang telah di-template.

SUM_WAIT_TIME

Waktu tunggu yang diperlukan untuk mengeksekusi pernyataan SQL. (Satuan: mikrodetik)

MIN_WAIT_TIME

Waktu tunggu minimum. (Satuan: mikrodetik)

MAX_WAIT_TIME

Waktu tunggu maksimum. (Satuan: mikrodetik)

SUM_EXEC_TIME

Total waktu yang diperlukan untuk mengeksekusi pernyataan SQL. (Satuan: mikrodetik)

MIN_EXEC_TIME

Waktu eksekusi minimum. (Satuan: mikrodetik)

MAX_EXEC_TIME

Waktu eksekusi maksimum. (Satuan: mikrodetik)

SUM_ROWS_SENT

Total jumlah baris yang dikembalikan.

MIN_ROWS_SENT

Jumlah minimum baris yang dikembalikan.

MAX_ROWS_SENT

Jumlah maksimum baris yang dikembalikan.

SUM_ROWS_EXAMINED

Total jumlah baris yang dipindai.

MIN_ROWS_EXAMINED

Jumlah minimum baris yang dipindai.

MAX_ROWS_EXAMINED

Jumlah maksimum baris yang dipindai.

SUM_ROWS_AFFECTED

Total jumlah baris yang terpengaruh.

MIN_ROWS_AFFECTED

Jumlah minimum baris yang terpengaruh.

MAX_ROWS_AFFECTED

Jumlah maksimum baris yang terpengaruh.

SUM_LOGICAL_READ

Total jumlah pembacaan logis.

MIN_LOGICAL_READ

Jumlah minimum pembacaan logis.

MAX_LOGICAL_READ

Jumlah maksimum pembacaan logis.

SUM_PHY_SYNC_READ

Total jumlah pembacaan sinkron fisik.

MIN_PHY_SYNC_READ

Jumlah minimum pembacaan sinkron fisik.

MAX_PHY_SYNC_READ

Jumlah maksimum pembacaan sinkron fisik.

SUM_PHY_ASYNC_READ

Total jumlah pembacaan asinkron fisik.

MIN_PHY_ASYNC_READ

Jumlah minimum pembacaan asinkron fisik.

MAX_PHY_ASYNC_READ

Jumlah maksimum pembacaan asinkron fisik.

EXTRA

Informasi tambahan.

Contoh

Fitur SQL Trace digunakan untuk melacak catatan kueri dan menampilkan catatan tersebut menggunakan tabel information_schema.sql_sharing. Sebagai contoh, ketika parameter loose_sql_trace_type diatur ke ALL, Anda dapat mengeksekusi pernyataan SQL berikut di database untuk melihat hasil jejak.

Eksekusi pernyataan berikut:

CREATE TABLE t AS WITH RECURSIVE t(c1, c2, c3) AS (SELECT 1, 1, 1 UNION ALL SELECT c1+1, c2 + 1, c3 + 1 FROM t WHERE c1 < 100) SELECT c1, c2, c3 FROM t;
CREATE index i_c1 ON t(c1);
SELECT  COUNT(*) FROM t;

Hasil sampel:

+----------+
| count(*) |
+----------+
|      100 |
+----------+

Anda dapat mengeksekusi pernyataan berikut untuk menanyakan informasi jejak dari pernyataan SQL yang dilacak dan statistik rencana eksekusi pernyataan SQL dalam tabel sistem information_schema.sql_sharing:

SELECT * FROM information_schema.sql_sharing;

Hasil sampel:

*************************** 1. row ***************************
              TYPE: SQL
            SQL_ID: 83qmtgr8d6rwn
       SCHEMA_NAME: test
       DIGEST_TEXT: SELECT * FROM `t` WHERE `c2` < ?
           PLAN_ID: NULL
              PLAN: NULL
        PLAN_EXTRA: NULL
        ERROR_CODE: NULL
            REF_BY: SQL_TRACE
   FIRST_LOAD_TIME: 2022-11-07 19:04:30
     LAST_HIT_TIME: 2022-11-07 19:04:30
        EXECUTIONS: 1
     SUM_WAIT_TIME: 184
     MIN_WAIT_TIME: 184
     MAX_WAIT_TIME: 184
     SUM_EXEC_TIME: 417
     MIN_EXEC_TIME: 417
     MAX_EXEC_TIME: 417
     SUM_ROWS_SENT: 2
     MIN_ROWS_SENT: 2
     MAX_ROWS_SENT: 2
 SUM_ROWS_EXAMINED: 100
 MIN_ROWS_EXAMINED: 100
 MAX_ROWS_EXAMINED: 100
 SUM_ROWS_AFFECTED: 0
 MIN_ROWS_AFFECTED: 0
 MAX_ROWS_AFFECTED: 0
  SUM_LOGICAL_READ: 101
  MIN_LOGICAL_READ: 101
  MAX_LOGICAL_READ: 101
 SUM_PHY_SYNC_READ: 0
 MIN_PHY_SYNC_READ: 0
 MAX_PHY_SYNC_READ: 0
SUM_PHY_ASYNC_READ: 0
MIN_PHY_ASYNC_READ: 0
MAX_PHY_ASYNC_READ: 0
             EXTRA: NULL
*************************** 2. row ***************************
              TYPE: PLAN
            SQL_ID: 83qmtgr8d6rwn
       SCHEMA_NAME: test
       DIGEST_TEXT: NULL
           PLAN_ID: 5a4cvp4gjqgfj
              PLAN: /*+ NO_INDEX(`t`@`select#1`) */
        PLAN_EXTRA: {`t`@`select#1`:ALL}
        ERROR_CODE: 0
            REF_BY: SQL_TRACE
   FIRST_LOAD_TIME: 2022-11-07 19:04:30
     LAST_HIT_TIME: 2022-11-07 19:04:30
        EXECUTIONS: 1
     SUM_WAIT_TIME: 184
     MIN_WAIT_TIME: 184
     MAX_WAIT_TIME: 184
     SUM_EXEC_TIME: 417
     MIN_EXEC_TIME: 417
     MAX_EXEC_TIME: 417
     SUM_ROWS_SENT: 2
     MIN_ROWS_SENT: 2
     MAX_ROWS_SENT: 2
 SUM_ROWS_EXAMINED: 100
 MIN_ROWS_EXAMINED: 100
 MAX_ROWS_EXAMINED: 100
 SUM_ROWS_AFFECTED: 0
 MIN_ROWS_AFFECTED: 0
 MAX_ROWS_AFFECTED: 0
  SUM_LOGICAL_READ: 101
  MIN_LOGICAL_READ: 101
  MAX_LOGICAL_READ: 101
 SUM_PHY_SYNC_READ: 0
 MIN_PHY_SYNC_READ: 0
 MAX_PHY_SYNC_READ: 0
SUM_PHY_ASYNC_READ: 0
MIN_PHY_ASYNC_READ: 0
MAX_PHY_ASYNC_READ: 0
             EXTRA: NULL
*************************** 3. row ***************************
              TYPE: SQL
            SQL_ID: cvdqw6ncsmwgh
       SCHEMA_NAME: test
       DIGEST_TEXT: CREATE TABLE `t` AS WITH RECURSIVE `t` ( `c1` , `c2` , `c3` ) AS ( SELECT ?, ... UNION ALL SELECT `c1` + ?  , `c2` + ?  , `c3` + ?  FROM `t` WHERE `c1` < ?  ) SELECT `c1` , `c2` , `c3` FROM `t`
           PLAN_ID: NULL
              PLAN: NULL
        PLAN_EXTRA: NULL
        ERROR_CODE: NULL
            REF_BY: SQL_TRACE
   FIRST_LOAD_TIME: 2022-11-07 19:04:15
     LAST_HIT_TIME: 2022-11-07 19:04:15
        EXECUTIONS: 1
     SUM_WAIT_TIME: 376
     MIN_WAIT_TIME: 376
     MAX_WAIT_TIME: 376
     SUM_EXEC_TIME: 10679
     MIN_EXEC_TIME: 10679
     MAX_EXEC_TIME: 10679
     SUM_ROWS_SENT: 0
     MIN_ROWS_SENT: 0
     MAX_ROWS_SENT: 0
 SUM_ROWS_EXAMINED: 200
 MIN_ROWS_EXAMINED: 200
 MAX_ROWS_EXAMINED: 200
 SUM_ROWS_AFFECTED: 100
 MIN_ROWS_AFFECTED: 100
 MAX_ROWS_AFFECTED: 100
  SUM_LOGICAL_READ: 1089
  MIN_LOGICAL_READ: 1089
  MAX_LOGICAL_READ: 1089
 SUM_PHY_SYNC_READ: 0
 MIN_PHY_SYNC_READ: 0
 MAX_PHY_SYNC_READ: 0
SUM_PHY_ASYNC_READ: 0
MIN_PHY_ASYNC_READ: 0
MAX_PHY_ASYNC_READ: 0
             EXTRA: NULL
*************************** 4. row ***************************
              TYPE: SQL
            SQL_ID: btcj0kh12wx26
       SCHEMA_NAME: test
       DIGEST_TEXT: CREATE INDEX `i_c1` ON `t` ( `c1` )
           PLAN_ID: NULL
              PLAN: NULL
        PLAN_EXTRA: NULL
        ERROR_CODE: NULL
            REF_BY: SQL_TRACE
   FIRST_LOAD_TIME: 2022-11-07 19:04:21
     LAST_HIT_TIME: 2022-11-07 19:04:21
        EXECUTIONS: 1
     SUM_WAIT_TIME: 295
     MIN_WAIT_TIME: 295
     MAX_WAIT_TIME: 295
     SUM_EXEC_TIME: 8620
     MIN_EXEC_TIME: 8620
     MAX_EXEC_TIME: 8620
     SUM_ROWS_SENT: 0
     MIN_ROWS_SENT: 0
     MAX_ROWS_SENT: 0
 SUM_ROWS_EXAMINED: 0
 MIN_ROWS_EXAMINED: 0
 MAX_ROWS_EXAMINED: 0
 SUM_ROWS_AFFECTED: 0
 MIN_ROWS_AFFECTED: 0
 MAX_ROWS_AFFECTED: 0
  SUM_LOGICAL_READ: 761
  MIN_LOGICAL_READ: 761
  MAX_LOGICAL_READ: 761
 SUM_PHY_SYNC_READ: 0
 MIN_PHY_SYNC_READ: 0
 MAX_PHY_SYNC_READ: 0
SUM_PHY_ASYNC_READ: 0
MIN_PHY_ASYNC_READ: 0
MAX_PHY_ASYNC_READ: 0
             EXTRA: NULL