タグ付けされた質問 「storage-engine」


7
MySQLでMEMORYストレージエンジンを使用しない理由は何ですか?
私は最近、MySQLが認識していない「メモリ」エンジンを持っていることを発見しました(私のデータベース作業の大部分は趣味のプロジェクト向けであるため、必要に応じて学習しています)。このオプションを使用すると、パフォーマンスが大幅に向上するはずなので、それに伴う欠点はあるのでしょうか。私が知っている2つは: 問題のテーブルを保持するのに十分なRAMが必要です。 マシンがシャットダウンすると、テーブルは失われます。 私はAWS EC2を使用しており、必要に応じてより多くのメモリを備えたインスタンスタイプに移行できるため、#1は問題ではないと考えています。必要に応じてディスクにダンプバックすることで、#2を軽減できると思います。 他にどんな問題がありますか?メモリエンジンは、MyISAMまたはInnoDBのいずれよりもパフォーマンスが低下することはありますか?このエンジンではインデックスが異なるということを読んだと思います。これは私が心配する必要があるものですか?

3
MongoDB MMAPv1 vs WiredTigerストレージエンジン
:mongoDB3で新しいストレージエンジン登場WiredTigerを。それでも、MMAPv1は依然としてMongoのデフォルトの選択肢です。 一方が他方よりも優れているとは限りません。多くの場合、ユースケースとジョブに適したツールの選択の問題です。しかし、どのエンジンがどの仕事に適していますか? 実際、MMAPv1はデフォルトのエンジンですが、WiredTigerはほとんどすべての分野で優れているようです。MMAPv1と同じ機能に加えて: 書き込みパフォーマンスの向上、 ドキュメントレベルの同時実行、 圧縮、 スナップショットおよびチェックポイントシステム。 MongoDBのブログで比較表を見つけました。 Solarisを使用している場合を除き、WiredTigerを選択しない理由はありますか? 編集 WiredTigerとMMAPv1の内部を詳細に説明する2つのビデオが あります。

3
同じサーバーでInnoDBとMyISAMテーブルを混在させることは一般的な習慣ですか?
8GBのRAMを搭載したサーバー上で実行される約4.5GBの単一のデータベースがあります。テーブルの大部分はMyIsam(約4.3GB)ですが、すぐにその一部をInnoDBに変換する予定です。(最初は最も書き込み量の多いテーブルに焦点を当てた遅いプロセスになります)。 両方のタイプのストレージエンジンが存在する専用サーバーの実行に問題はありますか?

3
MyISAMからInnoDBへの変換の高速化
私は4GBを占有する約450のテーブルのデータベースを持つmysql 5.1サーバーを持っています。これらのテーブルの大部分(2つを除くすべて)はMyIsamです。ほとんどの場合これで問題ありません(トランザクションは必要ありません)が、アプリケーションはトラフィックを獲得しており、更新時のテーブルロックにより特定のテーブルが影響を受けています。これが、テーブルの2つがInnoDBになった理由です。 小さなテーブル(10万行)での変換にはまったく時間がかからず、ダウンタイムが最小限に抑えられます。ただし、追跡テーブルのいくつかは5,000万行に近づいています。ALTER TABLE...ENGINE InnoDB大きなテーブルでを高速化する方法はありますか?そうでない場合、これらの書き込みが多いテーブルでダウンタイムを最小限に抑える変換方法はありますか?

1
行を更新する必要がある場合、データベースは削除と挿入を行いますか?
そこで、今日、教授は、データベースが更新を行う必要がある場合、内部で(低レベルで)削除し、更新されたフィールドで挿入することを教えてくれました。それから彼は、これはすべてのデータベースで行われたものであると言い、それから私はそれが意味がないと思ったが、自分の立場をサポートするのに十分なリソースがなかったと話し始めました。彼は多くのことを知っているようですが、なぜdbsがそうするのか理解できません。 つまり、フィールドを更新し、その行にさらにスペースが必要な場合は、物理的に行を削除し、新しいデータで最後に配置することを知っています。しかし、たとえば使用するスペースを減らした場合、なぜ削除して最後に再挿入するのでしょうか? これは本当ですか?利点は何ですか?

1
スロット配列と総ページサイズ
以下に示すように、多くのフォーラムや多くのブログでページが構成されていることを読み続けています。ページサイズ:16 x 512B = 8192Bページヘッダー:= 96B最大行数行:= 8060B これにより、(8192-96-8060)B = 36Bになります。 わかりました、これは論理的で正しいです。私の質問はこれです。なぜ多くの人が、残りの36Bがスロットアレイ用に予約されていると言うのですか 明らかに、スロット配列はページの行ごとに2Bを提供します。そのため、最小2B、最大1472Bになります。 2B:1行* 2B = 2B 1472B:8096B = n * 9B(オーバーヘッドを伴う最小行サイズ...単一のTINYINT列を考えてください)+ n * 2B(行ごとのスロット配列コスト)=> 8096 = 11n => n = 8096/11 = 736 736 * 2B = 1472B。 14Bバージョンタグにより、これで20になります。 USE master ; GO CREATE DATABASE test ; GO USE test …

3
MEMORYストレージエンジンを使用していますが、MySQLはまだディスクに書き込みます…なぜですか?
MEMORY Engine特定のMYSQLクエリに関連付けられているすべてのテーブルにfor を使用しています。これは、プロジェクトのアクセス速度が最も重要だからです。 何らかの理由で、大量のディスク書き込みがまだ発生していることに気付きました。 これは、WindowsがRAMをディスクにスワップしているためですか?これを防ぐにはどうすればよいですか? 編集:ここに私のグローバル変数があります: mysql> show global variables; +---------------------------------------------------+-------------------------------------------------------------------------------- ------------------------------+ | Variable_name | Value | +---------------------------------------------------+-------------------------------------------------------------------------------- ------------------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | autocommit | ON | | automatic_sp_privileges | ON | | back_log | 50 | | basedir | C:/Program Files/MySQL/MySQL Server …

1
IAMページについて:エクステント間隔
Itzikの本「Querying Microsoft SQL Server 2012」を読んでいるほか、インターネットでさまざまな教育資料を読んだり見たりしています。私の意図は、データベースの内部がどのように機能するかを理解することです。 IAMページについて解決できなかったことに少し疑問があります。私は理解の非常に早い段階にいるので、それをよりよく理解している人たちからの追加の助けが必要かもしれません。 第15章の「インデックスと統計の実装」では、IAMページの例として次の画像が表示されます。 同じ範囲に関連する16ページと思われるものを赤い矢印で確認できます。そんなことがあるものか?著者/編集者の間違いですか?または、より可能性の高いもの:私が正しく理解していないものはありますか? 私が持っている他の質問は、ページ間隔に関連しています。なぜ隣接していないのですか?最後のエクステントを例にとると、IDが336から22642のページ、またはその前のページが296から328のページをカバーします。

1
BLACKHOLEテーブルからデータを回復することは可能ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、データベース管理者のスタック交換のトピックになるようにします。 5年前休業。 エンジンBLACKHOLEを使用してテーブルを作成しました。 基本的に、BLACKHOLEストレージエンジンは、データを受け入れますが、破棄して格納しない「ブラックホール」として機能します。検索は常に空の結果を返します。 innodbまたはmyisamとしてストレージエンジンを使用して、古いテーブルと同じ新しいテーブルを作成することでデータを取得できると聞きました。しかし、私もそれを試しましたが、結果を得ることができませんでした。誰かがこの問題を解決するために私を助けることができますか? mysql> CREATE TABLE test1(i INT, c CHAR(10)) ENGINE = BLACKHOLE; Query OK, 0 rows affected (0.08 sec) mysql> INSERT INTO test1 VALUES(1,'record one'),(2,'record two'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from test1; Empty …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.