0

奇妙な質問に思えるかもしれませんが、データベースに MySQL とテーブルではなく XML を使用すると、パフォーマンス上の利点があるでしょうか?

これを文脈に入れるために、ユーザー プロファイルを持つ Web サイトを作成します。私は MySQL よりも XML をよく知っており、ほとんどの人が MySQL を標準として使用することを知っていますが、この 2 つを比較する方法について誰かがこのように小銭を投じることができるかどうか、またこの提案が Big O 表記が何であるかを理解している人にとって同じくらい法外であるかどうか疑問に思っていました。なれ...

4

5 に答える 5

2

xml ファイルが大きいほど、スクリプトの実行中に xml ファイル全体を RAM にロードする必要があるため、メモリ使用量が多くなります。平均的な MySQL データベースのサイズは約 4 MB です。それを 4 MB の xml ファイルに取り、4 MB の RAM にロードし、ディスクから RAM にロードし、ページビューごとに約 25 人の訪問者が 100 MB をすでに失っているとしましょう。高速な 1 ギガバイトの RAM に。言うまでもなく、毎回ページの読み込みに約 1 秒、またはそれ以上は追加されません。変更された変数を読み書きするための継続的なディスク負荷は言うまでもありません。2 つの vitor が同じ xml ファイルを更新しようとすると、スレッド化されたフォークの問題が発生します。

これらの問題は、SQL サーバーでは発生しません。

于 2012-06-01T21:36:15.643 に答える
0

さて、ここで主な質問が 2 つあります。

まず、データベースを使用する場合、XML データベースとリレーショナル データベースのどちらかを選択できます。どちらを選択するかは、主にデータの性質 (特にその複雑さだけでなく、使用方法にも依存します) によって異なります。

次に、データベースを使用するか、単純なファイル (XML ファイルなど) を使用するかを選択できます。その選択は、主にデータの量とトランザクションのスループットに依存します。

データの性質、その量、またはスループットの要件についてあまり教えていただけないため、どちらの質問についても具体的にアドバイスすることは困難です.

于 2012-06-02T17:35:19.010 に答える
0

MySQL にはインデックスがあり、格納するバイナリ値に合わせて最適化されています。あなたがxmlファイルで持っているのはプレーンファイルだけです..そして、あらゆる最適化(キャッシング、インデックス作成、あなたが考えることができるもの)はあなた次第です。

XML はトランスポートに最適なフォーマットであり、誰もがそれを口にしています..しかし、XML をストレージに使用することは望ましくありません。

また、XML は知っていても MySQL はまだ知らないという方は、ゲームの先を行っていると言えます。おそらく、SQL クエリを記述して結果をフェッチする方が、xml データを操作するよりも簡単であることがわかるでしょう。

于 2012-06-01T21:40:11.353 に答える
0

ご覧のとおり、利用可能な XML Db ソリューションがいくつかあります。これらは単純な Google 検索で表示されます。

http://exist-db.org/exist/index.xml;jsessionid=1dowedwdr9hsanbcvdcom8aka

http://basex.org/

http://www.oracle.com/technetwork/database/features/xmldb/index.html

http://www.sedna.org/

したがって、ここで重要なのは開発のスピードだけです。XML にほとんど精通している場合は、それらのいずれかを使用すると、開発時間が短縮される可能性があります。ただし、リレーショナル DB ORM 製品はたくさんありますが、プログラミング言語によっては、開発の労力を最大限に活用し、Web サイト用のデータベースを簡単に使用できるようになっています。そのため、Web サイトに特定のニーズがない場合は、上記のオプションのいずれかを使用できます。

于 2012-06-01T21:40:23.147 に答える
0

データベースの構造によって異なります。この質問は、データについて何も知らずに明確な答えを与えることはできません。XML とリレーショナル データベースの比較は、選択するデータと計画する操作の種類に大きく依存します。

たとえば、ストア、インデックス、およびクエリが 100 万行を超え、各行に同じフィールドが多数含まれているとします。これは単純で固定された構造であり、すべてのレコードで同じです。これはリレーショナル データベースに最適で、1 つのテーブルに格納できます。リレーショナル データベースは、このような固定レコードを非常に効率的に処理します。

于 2012-06-01T21:40:31.713 に答える