すべては実験から来ています。以下の例をご覧ください:
テーブル:
コードをコピー コードは次のとおりです:
CREATE TABLE IF NOT EXISTS `foo` (
`a` int(10) unsigned NOT NULL AUTO_INCREMENT,
`b` int(10) unsigned NOT NULL 、
`c` varchar(100) NOT NULL、
主キー (`a`)、
KEY `bar` (`b`,`a`)
) ENGINE=InnoDB;
CREATE TABLE IF NOT; EXISTS `foo2 ` (
`a` int(10) unsigned NOT NULL AUTO_INCREMENT、
`b` int(10) unsigned NOT NULL、
`c` varchar(100) NOT NULL、
PRIMARY KEY (`a`)、
KEY ` bar` (`b`,`a`)
) ENGINE=MyISAM
300,000 個のデータを 2 つのテーブルに挿入しました (挿入時のパフォーマンスの違いは、InnoDB が MyISAM よりも遅いことです)
コードをコピーします コードは次のとおりです:
$host = ' 192.168.100.166 ';
$dbName = 'test';
$password = ''; 'DB 接続に失敗しました');
mysql_select_db($dbName, $db);
echo '==================InnoDB======== === ============' . "rn";
$start = microtime(true);
mysql_query("FROM foo WHERE b = 1 LIMIT 1000, 10 ");
$end = microtime(true);
echo $end - $start . "rn";
echo '==================== MyISAM=== =============' . "rn"
$start = microtime(true); SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS; foo2 WHERE b = 1 LIMIT 1000, 10");
$end = microtime(true);
echo $end - $start . "rn";
戻り結果:
1 つのクエリで大きな違いが生まれます。 ! InnoDB と MyISAM は、その理由をすぐに分析します。
まず Explain を使用して確認してください
2 番目のクエリでクエリされる行が、InnoDB よりもはるかに少ないことを確認してください。逆に、クエリは InnoDB よりも遅くなります。 !このYはちょっと変です。
大丈夫、素晴らしいツールプロファイルもあります
具体的な使用方法については、http://dev.mysql.com/doc/refman/5.0/en/show-profile.htmlを参照してください。
簡単な使い方:
コードをコピーします
コードは次のとおりです:
Mysql>プロファイルを表示
ご覧いただけますMyISAM へのデータの送信は、InnoDB へのデータの送信よりもはるかに時間がかかります。 mysql ドキュメントを見る
http://dev.mysql.com/doc/refman/5.0/en/general-thread-states.html
データを送信中
スレッドは SELECT ステートメントの行を読み取り、処理し、クライアントにデータを送信します。この状態中に発生する操作は大量のディスク アクセス (読み取り) を実行する傾向があるため、多くの場合、この状態は存続期間全体で最も長時間実行される状態になります。指定されたクエリの。

データの送信とは、選択の結果をディスクから読み取り、結果をクライアントに返すことです。このプロセスには多数の IO 操作が含まれます。 show profile cpu for query XX を使用すると、MyISAM の CPU_system が InnnoDB よりもはるかに大きいことが確認できます。この時点で、テーブル クエリ (インデックスのみを使用して完了できるクエリとは異なります) に関して、MyISAM は InnoDB よりも遅いと結論付けることができます。
http://www.bkjia.com/PHPjc/326869.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/326869.html
技術記事
すべては実験から生まれたものです。次の例を参照してください。 テーブル: 次のようにコードをコピーします: CREATE TABLE IF NOT EXISTS `foo` ( `a` int(10) unsigned NOT NULL AUTO_INCREMENT, `b` int(10) u .. .