問題タブ [in-memory-tables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
9958 参照

logging - 100% インメモリ HSQL データベース

数時間ごとに最大 3 GB のデータに対してデータ マイニングを実行するサービスとして Java アプリケーションをセットアップしました。これをメモリ内で 100% 発生させたいと思います。理想的には、アプリケーションをすべてから分離したいと考えています。データベースを構築し、必要なマイニングを行い、完了したらデータベースを破棄するようにします。

ただし、HSQLDB では、「メモリ テーブルの作成....」コマンドを使用しても、すべてのステートメントのログが書き込まれ、次回のアプリケーション実行時にテーブルが再作成されます。

私は多くの挿入を行っているため、このファイルのサイズは急速に大きくなります。次回の実行時にデータベースを再構築することも気にしないので、ログは役に立ちません。

完了したらファイルを削除することもできますが、可能であれば、それほど多くをディスクに書き込む必要は避けたいと考えています。

この機能をオフにする方法はありますか?

前もって感謝します!

0 投票する
1 に答える
938 参照

mysql - MySQLヒープ/メモリベースのテーブル

12GBのRAMを搭載したサーバーがあり、my.cnfのmax_heap_table_sizeが6GBに設定されています。("max_heap_table_size = 6442450944")。これを設定した後、MySQLサーバーを再起動しました。

問題は、挿入中にテーブルが2GBになると、「テーブルがいっぱいです」というエラーが発生することです。2GB以上のデータを追加できないのはなぜですか?(2GBの数値は、phpMyAdminでサイズとして表示されるものです)

0 投票する
3 に答える
1231 参照

mysql - 大量に更新された MySQL テーブルに最適なテーブル エンジン。MyISAM またはヒープ?

特定の場所を中心に、いくつかの異なる縮尺の (半) リアルタイム フィードを保存するアプリケーションを作成しています。各スケールの重みは、スケールと同じ数の行のみを持つテーブルに配置されます。スケール アプリは、PHP Web アプリが 3 秒ごとに読み取る新しい重みを 1 秒ごとに MySQL データベースにフィードします。ハードドライブをページングするトラフィックが非常に多いようには見えないか、または違いが無視できるかどうかはわかりませんが、メモリ/ヒープテーブルと通常の MyISAM テーブル。

0 投票する
1 に答える
122 参照

mysql - 大きな「型と値」のテーブルを処理するために Mysql エンジンを選択する

私の仕事は、操作中に影響を受けなかったすべてのエンティティをデータベースから削除することです。2 つの列を持つ別のテーブルを作成しました。最初はテーブルの名前を再設定し、2 番目はそのテーブル内のレコードの ID です。

たとえば、テーブルがある場合

そしてその中のレコード

このレコードを編集すると、次のデータが edit_entities に入れられます。

次に、影響を受けていないエンティティ (edited_entities テーブルにない ID) をすべて削除する必要があり、次のようにします。

このような操作 (MySql) に最適なエンジンは何でしょうか? デフォルトのデータベース エンジンは InnoDB です。メモリ(ヒープ)について考えましたが、削除操作を高速化できるかどうかはわかりません。

必要な操作を最適化するにはどうすればよいか提案があれば、喜んでここにいたします。

子犬のテーブルに列を追加したくありません。

0 投票する
1 に答える
6182 参照

mysql - MySQL サービスの起動時に SQL クエリを実行する

クエリを高速化するために、mysql に HEAP (ram) テーブルを作成しました。しかし、mysql サーバーを再起動した後、ヒープ テーブルのデータが読み込まれません。

通常のテーブル名: id、product_name、status が myisam の製品

id =>整数および auto_increment、主キー

product_name => var_char および key(index)

ステータス =>ブール値

実際のクエリ:

速度を上げたいので、同じ構造で、products_ramという名前のテーブルを mysql HEAP テーブルとして作成しました。塗りつぶしにこのコードを使用しています:

しかし、mysql インスタンスを再起動すると、HEAP (ram) テーブル データが失われます。

mysql メモリ ストレージに関するドキュメントを見つけました: http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

しかし、探しているものが見つかりません。

mysql サーバーの初期化時に、products テーブルから products_ram テーブルにデータを自動的に挿入/コピーしたいと考えています。

どんな助けでも大歓迎です。

編集: 私のオペレーティング システム: Windows Server 2008 R2 および Mysql: MySQL 5.5

0 投票する
2 に答える
348 参照

sql - tempdbを使用したSQL Serverインメモリテーブル

SQL 2014 のメモリ テーブルでテストしていますが、特定のクエリの実行プランが tempdb で並べ替えを示しています。

ここに画像の説明を入力

クエリには、メモリ内の 2 つのテーブル (両方のテーブルに非クラスター化インデックスがあるフィールド) 間の結合と、いくつかの合計とカウントを持つグループ化があります。サーバーには十分な RAM が用意されています。

テーブルが「メモリ内」の場合、クエリが tempdb でソートされるのはなぜですか?

また、「インデックスの作成」ステートメントがメモリテーブルで許可されていない場合、SQLがインデックスを作成することを提案しているのはなぜだろうかと思っています。

0 投票する
1 に答える
110 参照

sql-execution-plan - WSO2CEP : ID を持つストリーム/テーブル定義が実行計画で定義されていません

実行計画でメモリ内テーブルを使用していますが、コンパイラはその定義について尋ねています。クエリは

mem_conn_table は、最後のクエリを追加したときに始まる問題の原因です。

0 投票する
1 に答える
323 参照

join - Siddhi QL : 入力ストリームを使用したインメモリ テーブルの外部結合

これらの%が新しいイベントで更新され続けるように、ネットワークトラフィックに出現するプロトコルの%を継続的に計算したいと考えています。円グラフが生成され、パーセンテージで更新されます。計算には新しいデータと以前のデータの両方が必要なので、インメモリ テーブルを使用してイベントを長期間 (たとえば 1 日) 保持することにしました。

イベント テーブルはイベント ストリームと結合した場合にのみ使用できるため、古い値も取得するために外部結合を選択しました。プロトコルとそのパーセンテージだけに関心があるので、2 つの列だけが必要ですが、外部結合で集計関数を適用できません。これまでに生成したクエリは次のとおりです。

外部の 1 分でウィンドウをバッチ処理してから、プロトコルとそのカウントを取得していますが、出力が得られません。

助言がありますか?

0 投票する
1 に答える
2070 参照

ruby-on-rails - Rails 5 Active Record - テーブルをメモリに保持することは可能ですか?

比較的静的なデータを含む小さなテーブルがある場合、アプリの起動時に Active Record にこれをロードさせ、このデータのためにデータベースにアクセスする必要がないようにすることは可能ですか?

理想的には、このデータに関係を持つ他のモデルから結合できるようにしたいことに注意してください。

例として、電話番号の接頭辞が付いた国のリストがあります。このリストは変更される可能性が低く、変更された場合は管理者によって変更されます。他のテーブルはこれと関係があるかもしれません (例えば、国への参照を持っているユーザーが与えられた場合、国の電話プレフィックスを検索したいかもしれません)。

ここで同様の質問を見ましたが、6 年前のもので、Rails 2 を参照していますが、私は Rails 5 を使用しており、それ以降に何かが導入された可能性があります。

好ましい解決策は次のとおりです。

  1. 組み込みの Rails / ActiveRecord 機能により、起動時に 1 回テーブルをロードし、その後、キャッシュされたテーブルと関係を持つ他のレコードがロードされた場合、キャッシュされたオブジェクトに自動的にリンクします (つまり、手動で MyModel.all をどこかにキャッシュするだけでは十分ではありません。データベースにクエリを実行することでリレーションシップが読み込まれるためです)。
  2. 上記を行う保守ライブラリ。
  3. どちらも利用できない場合、別の方法として、静的データセットをメモリ内列挙型/ハッシュなどとして定義し、このデータとの関係を持つレコードにハッシュ キーを保持し、それらのモデルにメソッドを定義して、データベースに永続化されたキーを使用して、ハッシュ内のオブジェクトを使用して検索します。これはかなり手動のようですが...

[編集] 潜在的な解決策で考慮すべきもう 1 つの点 - 手動の解決策 (3) では、API 経由でアクセスできるように、そのようなデータのカスタム コントローラーとルートも必要になります。理想的には、そうしたデータを RESTful API (読み取り専用 - GET のみ) を介して提供できるソリューションがあれば、必要に応じて Scaffolding などの標準的な Rails メカニズムを使用し、あまり手動で介入する必要がありません。

0 投票する
3 に答える
1957 参照

sql-server - SQL Server 2016 データベースがメモリ最適化に設定されているかどうかを確認する方法

SQL Server 2016データベースが既にメモリ最適化に設定されているかどうかについて、SQL クエリを介して情報を取得したいと考えています。私は次のクエリを知っています

(メモリ最適化データ ファイル グループを設定することによって) データベースがメモリ テーブルに含まれるように設定できるかどうかを示します。しかし、db が既にメモリ テーブルに含まれるように設定されているかどうか、つまり、そのメモリ最適化データ ファイル グループが既に設定されているかどうかを知りたいですか?

特定のデータベースに対してSQLクエリを使用してこれを達成するにはどうすればよいですか?