2009-03-10 11 views
4

私は、1000の行を持つ1つのテーブルと、同じ構造体/インデックス、しかし1,000万のレコードを持つ他のテーブルを持っているとしましょう。より大きなテーブルでのCRUD操作のパフォーマンスは、小さなテーブルよりも遅くなりますか?ありがとう。データが多いほどクエリが遅くなりますか?

答えて

1

によって異なります。作成、削除、および更新は、インデックス構造を再構成する必要がある可能性が高いため、平均でわずかに遅くなります。また、データベースシステムからより多くのデータが頻繁に要求される場合は、アクセスしようとしているデータがRAMにキャッシュされ、ハードディスクから読み取られる可能性が低くなります。しかし、これらの違いはクエリの変更にはあまり重要ではありません。

フェッチ/読み込みは確かに遅くなります。大量のデータをフェッチ、フィルタリング、並べ替え、グループ化することは、少量で同じ処理を行うよりも遅いことは明らかです。これは、作業中のデータが大きすぎてマシンのRAMに収まらない場合に特に当てはまります。

2

データベースエンジンに依存しますが、一般的には、データを見つけるために索引を通す必要があるため、一般的には遅くなります。あなたがグローバルな更新を行っている場合、より多くのデータを変更しているため、単に遅くなります。

データベースは、高速書き込みまたは高速読み取りのいずれかにチューニングされることもよくあります。インデックスを更新する必要がある2番目のケースでは、データベースは大きくなると時間がかかります。

0

これは、言い表せないほど多くの要素に依存します。例:DBエンジンは、文字列へのポインタを持つ行としてデータを格納します。何らかの理由で、10Mの行テーブルには4つの異なる文字列しか含まれていません。だから、あなたは4つの文字列に10Mポインターを持っています。

ある文字列を別の文字列に置き換える更新は、実際にはある文字列を別の文字列で置き換えるだけです。ポインタは同じになります。索引を更新する必要もありません。あなたが持っている行の数にかかわらず同じ速度。

削除は、削除が単に「削除済み」とフラグを立てない限り遅くなります。後で実行されるクリーンアップ・プロセスは、実際に表をクリーンアップします。しかし、データベースのユーザーとして、あなたは気付かないでしょう:削除はすぐに戻ります。

データをさらに返す必要があるため、選択が遅くなる可能性があります。最初の行が返されるまでの時間は、エンジンの設計とクエリに大きく依存します。適切に選択されたインデックスを持つ10Mテーブルに対して実行されるよく書かれたクエリは、インデックスの悪い1Kテーブルに対してより速く実行できます。それはサーバー上のRAMの量(多分RAM内のデータベース全体を保つことができます)、ディスク速度(少ないRAMと1台のディスクを備えた低速のPCと並行して動作する大量のディスクを持つRAIDアレイ)によって異なります。

10Mテーブルにはより多くの(より大きな)インデックスがあるため、通常は挿入が遅くなりますが、インデックスがない場合、10Mテーブルに1行追加するのは通常、小さなテーブルに追加するほど速いです。インデックス(またはオーダー)なし

0

が挿入、更新のために有意な差はなく、ページの面で削除する必要があります(大幅SQL型とメモリキャッシュのサイズなどによって行われるページの時間を見つける含めない)アクセスは

タイプおよびインデックスの数とあなたがは顕著な効果を有するであろう使用SQL生成

シーケンシャルキーに1つだけの整数インデックスと

A 10M行テーブルは、各として1000行及び10M行の非常に類似して実行します挿入または削除は1つのインデックスページ(フルページインデックスでは99.9%)のみを変更し、更新はインデックスの変更を行いません。10M行のインデックスページはほとんどのサーバーのキャッシュに入ります

ただし、varchar(50)属性のインデックスは1000行に比べて10M行で何倍も遅くなることがありますが、それは大きなインデックスのコストです

1000万行はそれほど心配しません。あなたは長さを行場合は100バイトであるあなたは、パフォーマンスを心配している場合は、テーブル全体がより多くのRAMを追加するRAM

の< 2ギガバイトに収まるだろう、それはもちろん、データベース

0

を最適化手にしようとするよりも安いですが、私はそれがどんな文脈もなく非常に有益な情報であるとは確信していません。アプリケーション設計のためには、通常、あなたの懸念事項の中で最も少なくないものがあります。それに対処する方法が非常に多く、費用対効果の高い代替手段は多くありません。

なぜお尋ねしますか?

関連する問題