मैं किसी विशिष्ट तालिका के लिए MySQL इंजन प्रकार की जांच कैसे कर सकता हूं?


391

My MySQL डेटाबेस में विभिन्न स्टोरेज इंजन (विशेष रूप से myisam और innodb) का उपयोग करते हुए कई टेबल होते हैं। मैं कैसे पता लगा सकता हूं कि कौन से टेबल किस इंजन का उपयोग कर रहे हैं।

जवाबों:


507

SHOW TABLE STATUS WHERE Name = 'xxx'

यह आपको (अन्य चीजों के बीच) एक Engineकॉलम देगा, जो आप चाहते हैं।


4
यदि मेरी तालिका क्षतिग्रस्त है, तो यह केवल इंजन = NULL दिखाता है और एक "टिप्पणी" है जो मुझे तालिका की मरम्मत करने के लिए कह रही है। हालाँकि, इससे पहले कि मैं जानता हूं कि तालिका को कैसे ठीक किया जाए, मैं अनुमान लगा रहा हूं कि मुझे इंजन को जानने की जरूरत है (मुझे वह ईमानदारी से दूर नहीं हुआ है।) इसलिए, नीचे @ Jocker की टिप्पणी मेरे लिए बहुत अधिक उपयोगी थी।
harperville

@Greg, क्या हमें इसका उपयोग करना चाहिए या जोकर के समाधान?
5

@ स्पेसर - दोनों ठीक काम करते हैं। अंतर यह है कि यह समाधान एक तालिका के लिए जानकारी देता है, जबकि जोकर का समाधान डेटाबेस में सभी तालिकाओं के लिए इंजन प्रकार दिखाता है (साथ ही साथ थोड़ा अधिक पठनीय है)।
kramer65

@Greg, Btw जब हम करते हैं तो इंजन की जानकारी क्यों नहीं दिखाई देती है show full columns from t1?
पचेरियर

236

किसी डेटाबेस और उनके इंजन की सभी तालिकाओं की सूची दिखाने के लिए, इस SQL ​​क्वेरी का उपयोग करें:

SELECT TABLE_NAME,
       ENGINE
FROM   information_schema.TABLES
WHERE  TABLE_SCHEMA = 'dbname';

dbnameअपने डेटाबेस के नाम के साथ बदलें ।


3
यह महान बी / सी है यह सब कुछ फ़िल्टर करता है लेकिन टैबलेन और इंजन।
टोन

1
विशिष्ट तालिका का इंजन प्राप्त करने के लिए, आप उपयोग कर सकते हैं: SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '<database_name>' AND TABLE_NAME = '<table_name>'
userlond

1
यह मुझे MySQL 5.6.37 पर एक खाली सेट देता है।
नैनी

1
यह एक बेहतर जवाब है क्योंकि यह सच एसक्यूएल है, तो मैं जैसे काम कर सकें है COUNT(*)और GROUP BY
ब्रैंडन


41

या केवल

show table status;

बस यह है कि यह आपके डेटाबेस पर सभी तालिकाओं को सूचीबद्ध करेगा।


2
@NikolaiSamteladze, क्या आपके पास चयनित db में तालिकाएँ हैं?
पचेरियर

15

जॉकर की प्रतिक्रिया के लिए एक बिट के सा

SELECT TABLE_NAME, ENGINE
  FROM information_schema.TABLES
 WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;

यह सूची से MySQL के विचारों को बाहर करता है, जिसमें इंजन नहीं है।


9
SHOW CREATE TABLE <tablename>\G

के आउटपुट की तुलना में इसे बहुत अच्छे स्वरूपित करेगा

SHOW CREATE TABLE <tablename>;

\Gचाल भी कई अन्य प्रश्नों के लिए / आदेश के लिए याद करने के लिए उपयोगी है।


1
\ G हैक केवल cli mysql के तहत है
gaRex

7
mysqlshow -i <database_name>

एक विशिष्ट डेटाबेस के सभी तालिकाओं के लिए जानकारी दिखाएगा।

mysqlshow -i <database_name> <table_name> 

ऐसा केवल एक विशिष्ट तालिका के लिए किया जाएगा।


1
यह प्रश्न का उत्तर नहीं देता है क्योंकि यह सभी तालिकाओं के लिए इंजन प्रदर्शित करता है। प्रश्न के सर्जक एक विशिष्ट तालिका के संबंध में जानकारी मांग रहे थे।
टैस

4

डेटाबेस_नाम से तालिका की स्थिति दिखाएं;

यह उल्लेखित डेटाबेस से सभी तालिकाओं को सूचीबद्ध करेगा।
उदाहरण आउटपुट

mysql db का नमूना आउटपुट

तालिका स्थिति दिखाएं जहां नाम = your_desired_table_name;

यह उल्लेख तालिका द्वारा उपयोग किए जाने वाले भंडारण इंजन को दिखाएगा।


3

यदि आप MySQL कार्यक्षेत्र का उपयोग कर रहे हैं, तो आप तालिका पर राइट-क्लिक कर सकते हैं और 'परिवर्तन तालिका' का चयन कर सकते हैं।

उस विंडो में आप अपना टेबल इंजन देख सकते हैं और उसे बदल भी सकते हैं।


2

अभी तक एक और तरीका है, शायद एक एकल या मिलान सेट तालिकाओं की स्थिति पाने के लिए सबसे छोटा:

SHOW TABLE STATUS LIKE 'table';

आप उदाहरण के लिए LIKE ऑपरेटरों का उपयोग कर सकते हैं:

SHOW TABLE STATUS LIKE 'field_data_%';

2

यदि आप एक 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)

आप इसे पसंद कर सकते हैं, यदि आप लिनक्स पर हैं, तो कम से कम।

में सभी तालिकाओं के लिए सभी जानकारी को खोल देगा 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 

.
.
.

0

info_schema डेटाबेस पर जाएं, वहां आपको 'टेबल' टेबल मिलेगी, फिर उसका चयन करें;

मैसकाल> सूचना_केम का उपयोग करें; मैसकल> टेबल से टेबल_नाम, इंजन चुनें;


0

यदि आप एक GUI आदमी हैं और इसे PhpMyAdmin में ढूंढना चाहते हैं , तो अपनी पसंद की तालिका चुनें और Operationsटैब पर सिर रखें >> Table options>>Storage Engine । आप ड्रॉप-डाउन विकल्प सूची का उपयोग करके इसे वहां से बदल भी सकते हैं।

PS: यह गाइड PhpMyAdmin के संस्करण 4.8 पर आधारित है। बहुत पुराने संस्करणों के लिए समान पथ की गारंटी नहीं दी जा सकती।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.