mysqlでデータベース・テーブルを表示するストレージ・エンジン
7417 ワード
「MySQLテーブルを表示するために使用されるストレージエンジン」のような文章がたくさんありますが、厳密ではありません.「SHOW CREATE TABLEテーブル名」を使う を参照してください.この方法で検出された結果は、場合によっては正確ではない.
たとえば、テーブル「test」の作成
普通はこれで何の問題もありません.ただし、MySQLサーバが構成中の場合、InnoDBストレージエンジンは有効になっていません.テーブル「test」を作成すると、MySQLはデフォルトのストレージエンジンMyISAM作成を自動的に選択します.
Fifiのブログ
例は次のとおりです.
Fifiのブログ
MySQL サーバの基本:
MySQLサーバが有効になっていません InnoDB ストレージエンジン;
データベース・ライブラリ名のテスト: mytest ;
データベース・テーブル名のテスト: test ( mytest.test ) ;
データベースログインアカウントのテスト: root ;
テストデータアカウントログインパスワード: mypassword ;
Fifiのブログ
列「Engine」の下に表示される値は、テーブルが使用しているMySQLストレージエンジンを示します.有効になっていません InnoDB ストレージエンジンの場合、正しい方法で返された結果に「Engine」が「MyISAM」であり、「InnoDB」ではないことがわかります. ストレージエンジン.そこで、「SHOW CREATE TABLEテーブル名」を使います テーブル使用の表示 MySQL ストレージエンジンは正確ではありません.
1. MySQLサーバがInnoDBを有効にしていることを確認 ストレージエンジン
Fifiのブログ
結果は次のとおりです. "InnoDB" 対応する 「Support」は「NO」に等しい ,有効になっていないことを示します InnoDB ストレージエンジン.
2. テーブル「test」の作成
Fifiのブログ
Fifiのブログ
3. 不正確な使い方:「SHOW CREATE TABLEテーブル名」 表示
Fifiのブログ
Fifiのブログ
4. 正しい方法1: SHOW TABLE STATUS from データベース・ライブラリ名 Where Name='テーブル名';
Fifiのブログ
5. 正しい方法2: mysqlshow -uデータベースログインアカウント-p'データベースログインアカウントパスワード' --status データベース・ライブラリ名 テーブル名
Fifiのブログ
view source
print ?
たとえば、テーブル「test」の作成
1.
CREATE
TABLE
test (
2.
id
INT
(11)
default
NULL
auto_increment,
3.
s
char
(60)
default
NULL
,
4.
PRIMARY
KEY
(id)
5.
) ENGINE=InnoDB;
普通はこれで何の問題もありません.ただし、MySQLサーバが構成中の場合、InnoDBストレージエンジンは有効になっていません.テーブル「test」を作成すると、MySQLはデフォルトのストレージエンジンMyISAM作成を自動的に選択します.
Fifiのブログ
例は次のとおりです.
Fifiのブログ
MySQL サーバの基本:
MySQLサーバが有効になっていません InnoDB ストレージエンジン;
データベース・ライブラリ名のテスト: mytest ;
データベース・テーブル名のテスト: test ( mytest.test ) ;
データベースログインアカウントのテスト: root ;
テストデータアカウントログインパスワード: mypassword ;
Fifiのブログ
列「Engine」の下に表示される値は、テーブルが使用しているMySQLストレージエンジンを示します.有効になっていません InnoDB ストレージエンジンの場合、正しい方法で返された結果に「Engine」が「MyISAM」であり、「InnoDB」ではないことがわかります. ストレージエンジン.そこで、「SHOW CREATE TABLEテーブル名」を使います テーブル使用の表示 MySQL ストレージエンジンは正確ではありません.
1. MySQLサーバがInnoDBを有効にしていることを確認 ストレージエンジン
Fifiのブログ
結果は次のとおりです. "InnoDB" 対応する 「Support」は「NO」に等しい ,有効になっていないことを示します InnoDB ストレージエンジン.
01.
mysql> SHOW ENGINES;
02.
+------------+---------+----------------------------------------------------------+( )
03.
| Engine | Support | Comment |( )
04.
+------------+---------+----------------------------------------------------------+( )
05.
| InnoDB | NO | Supports transactions, row-level locking, and foreign keys|( )
06.
| MRG_MYISAM | YES | Collection of identical MyISAM tables |( )
07.
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disa( )
08.
| CSV | YES | CSV storage engine |( )
09.
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables|( )
10.
| FEDERATED | NO | Federated MySQL storage engine |( )
11.
| ARCHIVE | YES | Archive storage engine |( )
12.
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance|( )
13.
+------------+---------+----------------------------------------------------------+( )
14.
8 rows in set (0.00 sec)
15.
16.
mysql>
17.
2. テーブル「test」の作成
Fifiのブログ
01.
mysql> create database mytest;
02.
Query OK, 1 row affected (0.02 sec)
03.
mysql> use mytest;
04.
Database changed
05.
mysql> CREATE TABLE test (
06.
-> id INT(11) default NULL auto_increment,
07.
-> s char(60) default NULL,
08.
-> PRIMARY KEY (id)
09.
-> ) ENGINE=InnoDB;
10.
Query OK, 0 rows affected, 2 warnings (0.06 sec)
11.
mysql>
12.
Fifiのブログ
3. 不正確な使い方:「SHOW CREATE TABLEテーブル名」 表示
Fifiのブログ
01.
mysql> SHOW CREATE TABLE test;
02.
+-------+----------------------------------------------------------------------------+
03.
| Table | Create Table|
04.
+-------+----------------------------------------------------------------------------+
05.
| test | CREATE TABLE `test` (
06.
`id` int(11) NOT NULL AUTO_INCREMENT,
07.
`s` char(60) DEFAULT NULL,
08.
PRIMARY KEY (`id`)
09.
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
10.
+-------+----------------------------------------------------------------------------+
11.
1 row in set (0.00 sec)
12.
mysql>
Fifiのブログ
4. 正しい方法1: SHOW TABLE STATUS from データベース・ライブラリ名 Where Name='テーブル名';
01.
ansen@neusoft:/myhome$ mysql -uroot -p'mypassword'
02.
Welcome to the MySQL monitor. Commands end with ; or \g.
03.
Your MySQL connection id is 221
04.
Server version: 5.1.41-3ubuntu12.7 (Ubuntu)
05.
06.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
07.
08.
mysql> SHOW TABLE STATUS from mytest where Name='test';
09.
+------------+--------+---------+------------+------+----------------+-------------+( )
10.
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |( )
11.
+------------+--------+---------+------------+------+----------------+-------------+( )
12.
| test | MyISAM | 10 | Fixed | 0 | 0 | 0 |( )
13.
+------------+--------+---------+------------+------+----------------+-------------+( )
14.
1 row in set (0.02 sec)
15.
16.
mysql>
Fifiのブログ
5. 正しい方法2: mysqlshow -uデータベースログインアカウント-p'データベースログインアカウントパスワード' --status データベース・ライブラリ名 テーブル名
Fifiのブログ
view source
print ?
1.
ansen@neusoft:/myhome$ mysqlshow -uroot -p'mypassword' --status mytest test
2.
Database:mytest Wildcard: test
3.
+------------+--------+---------+------------+------+----------------+-------------+( )
4.
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |( )
5.
+------------+--------+---------+------------+------+----------------+-------------+( )
6.
| test | MyISAM | 10 | Fixed | 0 | 0 | 0 |( )
7.
+------------+--------+---------+------------+------+----------------+-------------+( )
8.
ansen@neusoft:/myhome$