1

私が最近調べたいくつかのデータベースは、仮想マシンを内部に実装して、それぞれのデータの読み取りと書き込みを実行しています。たとえば、「VDBE」と呼ばれる SQLite の仮想マシンに関するこの記事を確認してください。そのようなアーキテクチャの利点が何であるかについて興味があります。パフォーマンスは 1 つであると思いますが、なぜこのような仮想マシンがより高速に実行されるのでしょうか? 実際、この余分なレイヤーが実行速度を低下させる可能性があるようです。もしかしてセキュリティのため?それとも携帯性?とにかく、これについては興味があります。

4

1 に答える 1

1

それらは、移植性を失うことなく許容できる速度を得る「アセンブリのような」レベルで処理を行います。彼らは仮想マシンを提供するので、バランスの取れたトレードオフが得られると思います。高水準コード (SQL コード**) を高水準言語として実行すると、速度が低下しますが、利便性が向上します。もう 1 つの方法は、プラットフォーム固有の (ネイティブ) コードを生成することです。このコードは、解釈されたものと比較してはるかに高速に実行されますが、ANSI-C が存在する場所で実行される広範なライブラリにとっては非常に面倒です。

** もちろん SQL コードである必要はありません。命令表現は実行に適していると思います。とにかく、その表現は「オペコード」と比較して非常に高レベルの表現です。

于 2010-03-19T01:30:04.113 に答える