18

MySQLデータベースが使用しているストレージエンジンを見つけるためのコマンドがターミナルにありますか?

4

7 に答える 7

27

これはいくつかの場所で利用できます。

出力からSHOW CREATE TABLE

mysql> SHOW CREATE TABLE guestbook.Guestbook;
+-----------+-------------------------------------------+
| Table     | Create Table                                                                                                                                                                   |
+-----------+-------------------------------------------+
| Guestbook | CREATE TABLE `Guestbook` (
  `NAME` varchar(128) NOT NULL DEFAULT '',
  `MESSAGE` text NOT NULL,
  `TIMESTAMP` varchar(24) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

information_schemaから

information_schema.TABLES複数のテーブルのエンジンにクエリを実行する場合にも使用できます。

SELECT ENGINE 
FROM information_schema.TABLES
WHERE
  TABLE_NAME='yourtable'
  AND TABLE_SCHEMA='yourdatabase';
于 2012-05-02T21:12:05.510 に答える
12
SHOW ENGINES;

MySQLデータベースがサポートするエンジンを返し、作成時に特に指定されていない場合は、デフォルトのエンジンを教えてください。

于 2016-09-05T12:22:41.510 に答える
10

MySQLのデータベースは複数のストレージエンジンを使用できるため、テーブルごとに確認する必要があります。最も簡単なのは

show create table yourtable;

DDLステートメントの最後にある「engine」行が何であるかを確認してください。例、、engine=InnoDBなどengine=MyISAM..。

DB内のすべてのテーブルを確認する場合:

select TABLE_NAME, ENGINE
from information_schema.TABLES
where TABLE_SCHEMA='yourdbname'
于 2012-05-02T21:15:35.657 に答える
1

これはより長い解決策ですが、何かを学びたい場合に役立ちますinformation_schema

mysql> select table_name,engine from information_schema.tables where table_name
= 'table_name' and table_schema = 'db_name';
于 2012-05-02T21:15:42.060 に答える
1

次のコマンドを使用できます。

mysql -u[user] -p -D[database] -e "show table status\G"| egrep "(Index|Data)_length" | awk 'BEGIN { rsum = 0 } { rsum += $2 } END { print rsum }'
于 2012-05-02T21:15:58.003 に答える
0

SHOW TABLE STATUS WHERE Name ='user_tbl'

于 2016-06-29T10:55:41.103 に答える
0
mysql -u[user] -p -D[database] -e "show table status\G" | egrep "(Engine|Name)"

これにより、すべてのテーブルとそれに対応するエンジンが一覧表示されます。すべての概要を把握するのは良いことです!

これは@yago-riveiroからの修正された回答であり、使用中のエンジンではなく、テーブルのサイズを取得する方法を示しました。また、コマンドの機能について説明することをお勧めします。

于 2017-02-01T09:31:40.280 に答える