問題タブ [main-memory-database]

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 に答える
248 参照

main-memory-database - メインメモリセカンダリメモリオブジェクト

Javaアプリケーション(Eclipseなど)でDB関連の操作を実行したいという状況があります。MySQLをRDBMSとして使用し、HibernateをORMプロバイダーとして使用しています。

  1. Javaの埋め込みSQLを使用してすべてのレコードを取得します。

//接続を定義します...etc

ResultSet result = myStmt.executeQuery( "SELECT * FROM employees");

//イテレータ

  1. Hibernate ORM/JPQLを使用してすべてのレコードを取得します。

//接続、エンティティマネージャ....など

リスト結果=em.createQuery( "SELECT emp FROM Employees emp")。getResultList();

//イテレータ

RDMSがセカンダリメモリ(DISK)にあることを知っています。問題は、両方の結果がいつ返されるかということです。従業員は実際どこにいますか?セカンダリ(SM)またはメインメモリ(MM)で?

最後に、さらにテストするために2つのオブジェクト母集団を作成します。1つはSMで動作し、もう1つはMMで動作しますか?これはどのように可能ですか?

ありがとう

フランク

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

c++ - C++ インターフェイスを備えたメイン メモリ データベース

C++ インターフェイスを備えたメイン メモリ データベースを探しています。プログラムによるクエリ インターフェイスを備えたデータベース、できればネイティブ C++ 型で動作するデータベースを探しています。たとえば、SQLLite はクエリを文字列として受け取り、解析を実行する必要があります。これには時間がかかります。私が探している操作は次のとおりです。

  • 整数型を格納できる任意の次元 (属性の数) のテーブルの作成。
  • 挿入、削除、選択、射影、および (優先事項ではありませんが) 結合のサポート。
0 投票する
4 に答える
3433 参照

java - データベース テーブルをメモリにロードして使用する

検索アプリケーションでは、ファイルとその場所を追跡する必要があります。現在、これにはデータベース テーブルを使用していますが、そのようなデータを取得する必要があるたびにデータベースに接続する必要があるため、これは明らかに効率的ではありません。テーブルをメモリにロードして使用できる方法はありますか? メモリ内にある間は変更する必要はありません。

ありがとう!

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

java - JDBC 互換のメイン メモリ スタンドアロン データベース

Java アプリケーション用の高性能メイン メモリ データベースが必要です

1]
-JDBC 準拠のデータベースを提案してください
-スタンドアロン (つまり、フラット ファイル) -
メモリ テーブルのサポート -高
パフォーマンス
-B-TREE インデックス作成

2]プログラムの実行中にMEMORYにデータベースをロードし、プログラムが存在するときにディスクに(圧縮形式で)保存するJAVAの手法はありますか。

パフォーマンスが問題なので、SQLITE を提案しないでください。

インメモリ モードで HSQLDB または H2 を提案している場合は、データベースをファイルに保存し、actionEvent でヒープを解放する方法を教えてください。

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

java - ファイルへの書き込みが速いのはどれですか?

大きなファイルやメモリに関する制約を扱った経験はほとんどありません。プログラミング言語としてJavaを使用していることに注意してください。

15GB のファイル サイズでレコードを検索し、結果を別のファイルに書き込む必要があります。基本的には検索範囲機能の実装です。私の目標は、範囲内にあるレコードを結果ファイルに改行で区切って書き込むことです。つまり、各レコードは別々の行にある必要があります。そして、そのようなクエリの数は約 400 ~ 1000 です。したがって、各クエリは、その範囲内にある多くのレコードを書き込むことになります。

では、次のうちどれがより速いアプローチですか?

1-クエリ範囲レコードを取得し始めるとすぐに、ファイルにシリアルで書き込み始めますか?

2-レコードを何らかの文字列に保存し、見つかった各レコードに文字列を追加して、最後にそれを書き込みますか?

3-文字列ビルダーを使用して各クエリの結果を連結し、最後にファイルに書き込みますか? ただし、文字列ビルダーは改行をサポートしていません。

4-独自のデータ構造を作成しますか?

5- レコードの配列リストを作成し、最後にそれを繰り返し処理してファイルに書き込みますか?

IO と MM の両方で最速のアプローチを教えてください。

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

memory - ベースレジスタとリミットレジスタはどこにありますか?

ベースレジスタとリミットレジスタはどこにありますか?

  1. CPUまたは他の場所にありますか?

  2. ベース アドレスとリミット アドレスは、プロセスごとに異なります。では、CPU はどのようにして各プロセスのこれらのレジスタの値を知ることができるのでしょうか?

編集:すべてのプロセスには、開始アドレス(ベース)と終了アドレス(ベース+制限)のメモリ上の場所があります。これらのアドレスを調べることにより、cpu は、他のプロセスのメモリに影響を与えないように、これらのアドレス範囲に対して操作を実行しません。したがって、すべてのプロセスには開始アドレス (ベース) があります。私の質問は、プロセスごとに異なるこのアドレスをCPUがどのように取得するかです