MySQL トランザクション テーブルと非トランザクション テーブル

黄舟
リリース: 2017-02-06 10:32:29
オリジナル
2179 人が閲覧しました

max_binlog_stmt_cache_size パラメータの説明を見ると、次の文があります: トランザクション内の非トランザクション ステートメントがこのバイト数を超えるメモリを必要とする場合、サーバーはエラーを生成します。

それでは、非トランザクション ステートメントとは何ですか?

http://dev.mysql.com/ で nontransactional キーワードを検索すると、最初に出てくるのは「Rollback Failure for Nontransactional Tables」です。

では、非トランザクションテーブルとは何ですか?

非トランザクションテーブル、非トランザクションテーブル、トランザクションをサポートしないテーブル、つまり、MyISAM ストレージエンジンを使用するテーブル。

非トランザクション テーブルの特徴は、ロールバックをサポートしていないことです。以下の例を見ると

>create table no_trans(id int) ENGINE=MyiSAM;
>start transaction;
>insert into no_trans values(1);
>select * from no_trans;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)
 
>rollback;
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
>show warnings;
+---------+------+---------------------------------------------------------------+
| Level   | Code | Message                                                       |
+---------+------+---------------------------------------------------------------+
| Warning | 1196 | Some non-transactional changed tables couldn't be rolled back |
+---------+------+---------------------------------------------------------------+
1 row in set (0.00 sec)
 
>select * from no_trans;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)
ログイン後にコピー

、非トランザクション テーブルのロールバックは、非トランザクション テーブルがサポートしていないことを示す警告をスローすることがわかります。ロールバック。


非トランザクション テーブル オブジェクトと比較して、InnoDB を使用するテーブルなどのトランザクション テーブルはロールバック操作をサポートします。

>create table trans(id int);
>start transaction;
>insert into trans values(1);
>select * from trans;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)
 
 
>rollback;
Query OK, 0 rows affected (0.00 sec)
 
 
>select * from trans;
Empty set (0.00 sec)
ログイン後にコピー

非トランザクション ステートメントとは、非トランザクション テーブルを操作するステートメントを意味すると結論付けることができます。


max_binlog_stmt_cache_size このパラメーターは、MyISAM などの非トランザクション テーブルに影響します。このパラメーターが十分でない場合は、より多くのスペースが必要であるというメッセージが表示されます。


max_binlog_cache_size このパラメータは、InnoDB などのトランザクション テーブルに影響します。このパラメータが十分でない場合は、より多くのスペースが必要であるというメッセージが表示されます。

上記は MySQL トランザクション テーブルと非トランザクション テーブルの内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!