ฐานข้อมูล MySQL ของฉันมีหลายตารางโดยใช้เครื่องมือจัดเก็บข้อมูลที่แตกต่างกัน (โดยเฉพาะ myisam และ innodb) ฉันจะทราบได้อย่างไรว่าตารางใดบ้างที่ใช้เอ็นจิน
ฐานข้อมูล MySQL ของฉันมีหลายตารางโดยใช้เครื่องมือจัดเก็บข้อมูลที่แตกต่างกัน (โดยเฉพาะ myisam และ innodb) ฉันจะทราบได้อย่างไรว่าตารางใดบ้างที่ใช้เอ็นจิน
คำตอบ:
SHOW TABLE STATUS WHERE Name = 'xxx'
สิ่งนี้จะทำให้คุณมีEngine
คอลัมน์ซึ่งเป็นสิ่งที่คุณต้องการ
show full columns from t1
?
ในการแสดงรายการของตารางทั้งหมดในฐานข้อมูลและเอ็นจิ้นให้ใช้คิวรี SQL นี้:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
แทนที่dbname
ด้วยชื่อฐานข้อมูลของคุณ
SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '<database_name>' AND TABLE_NAME = '<table_name>'
COUNT(*)
GROUP BY
SHOW CREATE TABLE <tablename>;
หัก parseable SHOW TABLE STATUS
แต่สามารถอ่านได้มากกว่า
หรือเพียงแค่
show table status;
เพียงแค่นี้จะทำรายการตารางทั้งหมดในฐานข้อมูลของคุณ
ปรับแต่งเล็กน้อยเพื่อตอบสนองของ Jocker (ฉันจะโพสต์เป็นความคิดเห็น แต่ฉันยังไม่มีกรรมเพียงพอ):
SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
สิ่งนี้ไม่รวมมุมมอง MySQL จากรายการซึ่งไม่มีเครื่องมือ
SHOW CREATE TABLE <tablename>\G
จะจัดรูปแบบมันดีกว่าเมื่อเทียบกับผลลัพธ์ของ
SHOW CREATE TABLE <tablename>;
\G
เคล็ดลับยังมีประโยชน์ที่จะจำสำหรับการค้นหาอื่น ๆ อีกมากมาย / คำสั่ง
mysqlshow -i <database_name>
จะแสดงข้อมูลสำหรับตารางทั้งหมดของฐานข้อมูลเฉพาะ
mysqlshow -i <database_name> <table_name>
จะทำเช่นนั้นสำหรับตารางที่เฉพาะเจาะจง
แสดงสถานะตารางจาก database_name;
มันจะแสดงรายการตารางทั้งหมดจากฐานข้อมูลที่กล่าวถึง
ตัวอย่างผลลัพธ์
แสดงสถานะตารางโดยที่ name = your_desired_table_name;
มันจะแสดงเครื่องมือจัดเก็บข้อมูลที่ใช้โดยตารางที่กล่าวถึง
หากคุณใช้งาน MySQL Workbench คุณสามารถคลิกขวาที่ตารางและเลือก 'แก้ไขตาราง'
ในหน้าต่างนั้นคุณสามารถเห็นตารางเครื่องยนต์ของคุณและเปลี่ยนได้
อีกวิธีหนึ่งอาจสั้นที่สุดในการรับสถานะของชุดของตารางเดียวหรือจับคู่:
SHOW TABLE STATUS LIKE 'table';
จากนั้นคุณสามารถใช้ตัวดำเนินการ LIKE ตัวอย่างเช่น:
SHOW TABLE STATUS LIKE 'field_data_%';
หากคุณเป็นผู้ใช้ linux:
ในการแสดงเครื่องมือสำหรับตารางทั้งหมดสำหรับฐานข้อมูลทั้งหมดบนเซิร์ฟเวอร์ MySQL โดยไม่ต้องตารางinformation_schema
, mysql
, performance_schema
:
less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------"; mysql -e "use $i; show table status;"; done } | column -t)
คุณอาจรักสิ่งนี้ถ้าคุณอยู่บน linux อย่างน้อย
จะเปิดข้อมูลทั้งหมดสำหรับทุกตารางในless
กด-S
เพื่อตัดเส้นที่ยาวเกินไป
ตัวอย่างผลลัพธ์:
--------------------information_schema--------------------
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time C
CHARACTER_SETS MEMORY 10 Fixed NULL 384 0 16434816 0 0 NULL 2015-07-13 15:48:45 NULL N
COLLATIONS MEMORY 10 Fixed NULL 231 0 16704765 0 0 NULL 2015-07-13 15:48:45 NULL N
COLLATION_CHARACTER_SET_APPLICABILITY MEMORY 10 Fixed NULL 195 0 16357770 0 0 NULL 2015-07-13 15:48:45 NULL N
COLUMNS MyISAM 10 Dynamic NULL 0 0 281474976710655 1024 0 NULL 2015-07-13 15:48:45 2015-07-13 1
COLUMN_PRIVILEGES MEMORY 10 Fixed NULL 2565 0 16757145 0 0 NULL 2015-07-13 15:48:45 NULL N
ENGINES MEMORY 10 Fixed NULL 490 0 16574250 0 0 NULL 2015-07-13 15:48:45 NULL N
EVENTS MyISAM 10 Dynamic NULL 0 0 281474976710655 1024 0 NULL 2015-07-13 15:48:45 2015-07-13 1
FILES MEMORY 10 Fixed NULL 2677 0 16758020 0 0 NULL 2015-07-13 15:48:45 NULL N
GLOBAL_STATUS MEMORY 10 Fixed NULL 3268 0 16755036 0 0 NULL 2015-07-13 15:48:45 NULL N
GLOBAL_VARIABLES MEMORY 10 Fixed NULL 3268 0 16755036 0 0 NULL 2015-07-13 15:48:45 NULL N
KEY_COLUMN_USAGE MEMORY 10 Fixed NULL 4637 0 16762755 0
.
.
.
ไปที่ data_schema ฐานข้อมูลคุณจะพบตาราง 'tables' จากนั้นเลือก
Mysql> ใช้ data_schema; Mysql> เลือก table_name, เอ็นจินจากตาราง;
หากคุณเป็นคนGUIและเพียงต้องการค้นหาในPhpMyAdminกว่าเลือกตารางที่คุณเลือกและตรงไปที่Operations
แท็บTable options
>>Storage Engine
>>คุณสามารถเปลี่ยนได้จากที่นั่นโดยใช้รายการตัวเลือกแบบหล่นลง
PS: คู่มือนี้เป็นไปตาม PhpMyAdmin เวอร์ชัน 4.8 ไม่สามารถรับประกันเส้นทางเดียวกันสำหรับเวอร์ชันที่เก่ากว่านี้มาก