Saturday, June 8, 2013

メモリとテンポラリテーブル



私はブログで答えforum.mysql.comの質問を支援するための要求を受けているので、私はここにいくつかの拡張の例を投稿していきます。

私は、この記事に気づい: http://forums.mysql.com/read.php?10、588192,588192#MSG-588192を 、私は最初の状況を処理する別の方法を考えた。

あなたは一時的な情報を処理するためのテーブルが必要な場合は2つの方法でそれについて移動することができます。 それはセッション処理あたりであれば一つは、あなたは唯一の一時テーブルを作成する必要があります。

CREATE TEMPORARY TABLE `temporary_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ;


これはNO。FRMファイルになりますし、離れて行くとセッション閉じます。
あなたが長く、それが利用できる必要があると高速であるためにそれが必要な場合は、MEMORYテーブルを使用することができます。 は、データベースを再起動するまで、これは滞在するなど、テーブルを削除..

CREATE TABLE `memory_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MEMORY;


これが再びNO。FRMファイルを意味します。

あなたはあなたが、次のリストを見つけることができますので、多くのか何かを持っているので、メモリテーブルをクリーンアップに行きたいのであれば...
SELECT TABLE_SCHEMA, ENGINE, COUNT(*) AS count_tables,
SUM(DATA_LENGTH+INDEX_LENGTH) AS size,
SUM(INDEX_LENGTH) AS index_size FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('mysql', 'INFORMATION_SCHEMA')
AND ENGINE = "MEMORY" GROUP BY TABLE_SCHEMA, ENGINE;


いつものように... あなたとあなたのアプリケーションのために最適なものをあなたのニーズやベンチマークを見直す。