問題タブ [database-performance]

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 投票する
15 に答える
206136 参照

mysql - パフォーマンスが低下し始める前に、MySQL データベースがどれくらい大きくなるか

MySQL データベースのパフォーマンスが低下し始めるのはどの時点ですか?

  • 物理データベースのサイズは重要ですか?
  • レコードの数は重要ですか?
  • パフォーマンスの低下は線形ですか、それとも指数関数的ですか?

私は大規模なデータベースであると信じているものを持っており、約 15M のレコードがあり、ほぼ 2GB を占めています。これらの数値に基づいて、データを一掃するインセンティブはありますか、それとも、さらに数年間スケーリングを続けても安全ですか?

0 投票する
8 に答える
19354 参照

mysql - MySQL のパーティショニング / シャーディング / スプリッティング - どちらに進むべきか?

約 70 GB の InnoDB データベースがあり、今後 2 ~ 3 年で数百 GB に拡大すると予想しています。データの約 60% が 1 つのテーブルに属しています。現在、64 GB の RAM を備えたサーバーを使用しているため、データベースは非常にうまく機能しているため、データベース全体がほぼメモリに収まりますが、データ量がかなり大きくなる将来が心配です。現在、テーブル (特にデータの大部分を占めるテーブル) を分割する何らかの方法を検討しており、どのように行うのが最善の方法であるかを考えています。

私が現在知っているオプションは

  • バージョン 5.1 に付属する MySQL Partitioning の使用
  • データのパーティショニングをカプセル化するある種のサードパーティ ライブラリを使用する (休止状態のシャードなど)
  • アプリケーション内に自分で実装する

私たちのアプリケーションは、J2EE と EJB 2.1 で構築されています (いつか EJB 3 に切り替えたいと思っています)。

何を提案しますか?

編集 (2011-02-11):
更新情報: 現在、データベースのサイズは 380 GB、「大きな」テーブルのデータ サイズは 220 GB、インデックスのサイズは 36 GB です。したがって、テーブル全体がメモリに収まらなくなりますが、インデックスはメモリに収まります。
システムはまだ (同じハードウェア上で) 正常に動作しており、データのパーティション化についてまだ検討中です。

編集 (2014-06-04): もう 1 つの更新: データベース全体のサイズは 1.5 TB で、「大きな」テーブルのサイズは 1.1 TB です。サーバーを 128 GB RAM の 4 プロセッサ マシン (Intel Xeon E7450) にアップグレードしました。システムはまだ正常に動作しています。次に計画しているのは、大きなテーブルを別のデータベース サーバーに配置することです (ソフトウェアで必要な変更を既に行っています) と同時に、256 GB RAM を備えた新しいハードウェアにアップグレードします。

このセットアップは 2 年間続くことになっています。その後、最終的にシャーディング ソリューションの実装を開始するか、1 TB の RAM を搭載したサーバーを購入する必要があります。

編集 (2016-01-18):

それ以来、大きなテーブルを別のサーバー上の独自のデータベースに配置しました。現在、このデータベースのサイズは約 1.9 TB で、他のデータベース (「大きな」テーブルを除くすべてのテーブルを含む) のサイズは 1.1 TB です。

現在のハードウェア設定:

  • HP ProLiant DL 580
  • 4 x Intel(R) Xeon(R) CPU E7- 4830
  • 256GBのRAM

この設定でパフォーマンスは問題ありません。

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

database-performance - クエリが遅い/キャッシュを無効にする - Sybase Adaptive Server

このクエリは、クライアント データベースの Sybase v10 で非常に遅く実行されているようです (400 万レコードで 25 秒!)。

tnr が主キーです。

ただし、サーバーで 1000x を実行すると、高速 (15 ミリ秒...) のように見えるため、クエリ結果がキャッシュされているためだと思われます。この問題を再現するために、Sybase でこのクエリ (またはデータベース全体) のキャッシュを無効にする方法はありますか?

私は試した:

しかし、うまくいかなかったようです。

0 投票する
8 に答える
59918 参照

sql - NULL 値はデータベース検索のパフォーマンスにどのように影響しますか?

私たちの製品には汎用検索エンジンがあり、検索パフォーマンスを最適化しようとしています。クエリで使用されるテーブルの多くは、NULL 値を許可します。最適化のために null 値を許可しないようにテーブルを再設計する必要がありますか?

当社の製品は と の両方Oracleで動作しMS SQL Serverます。

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

database - サロゲートと自然キー:パフォーマンスの違いに関する厳しい数字?

代理キーと自然キーの間には健全な議論があります。

SO投稿1

SO投稿2

大多数と一致しているように思われる私の意見 (わずかな過半数) は、自然キーが完全に明白であり、変更されないことが保証されていない限り、代理キーを使用する必要があるというものです。次に、自然キーに一意性を適用する必要があります。これは、ほぼ常に代理キーを意味します。

Company テーブルから始まる 2 つのアプローチの例:

1: 代理キー: テーブルには、PK (および ID) である ID フィールドがあります。会社名は州ごとに一意である必要があるため、一意の制約があります。

2: 自然キー: テーブルは CompanyName と State を PK として使用します -- PK と一意性の両方を満たします。

Company PK が他の 10 個のテーブルで使用されているとします。それを裏付ける数字がない私の仮説は、ここでは代理キーアプローチの方がはるかに高速であるということです。

自然キーについて私が見た唯一の説得力のある議論は、自然キーとして 2 つの外部キーを使用する多対多テーブルの場合です。その場合は一理あると思います。ただし、リファクタリングが必要な場合は問題が発生する可能性があります。それはこの投稿の範囲外だと思います。

代理キーを使用する一連のテーブルと自然キーを使用する同じ一連のテーブルのパフォーマンスの違いを比較する記事を見た人はいますか? SO と Google を調べてみても、価値のあるものは何も得られませんでした。


重要な更新:この質問に答える一連のテスト テーブルの作成を開始しました。次のようになります。

  • PartNatural - 固有の PartNumber を PK として使用するパーツ テーブル
  • PartSurrogate - ID (int、identity) を PK として使用し、PartNumber に一意のインデックスを持つパーツ テーブル
  • Plant - PK としての ID (int、identity)
  • エンジニア - PK としての ID (int、identity)

すべての部品がプラントに結合され、プラントの部品のすべてのインスタンスがエンジニアに結合されます。このテストベッドに問題がある場合は、今がその時です。

0 投票する
7 に答える
17748 参照

sql-server - データを出力せずに Sql Server Mgmt Studio でパフォーマンスをテストするにはどうすればよいですか?

SQL Server Management Studio の使用。

結果ウィンドウがテストに影響を与えることなく、大きな選択 (たとえば 600k 行) のパフォーマンスをテストするにはどうすればよいですか? 2 つのクエリが両方とも同じ場所に出力されるため、すべてが同じであれば、実際には問題になりません。しかし、テスト サイクルをスピードアップしたいと考えており、SQL Server Management Studio の出力設定が邪魔になっていると考えています。テキストへの出力は私が現在使用しているものですが、より良い代替手段を望んでいます。

データベースがローカルボックスにあるため、これが私の数値に影響を与えていると思います.

編集:ここで WHERE 1=0 を実行することについて質問がありました(結合は発生するが出力はないと考えています)が、テストしたところ機能しませんでした-クエリパフォーマンスの有効な指標ではありません.

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

sql-server - SQL Server 拡張プロパティを使用する際のパフォーマンスに関する考慮事項

皆様へ

データベース ドキュメントの一部として拡張プロパティを使用したいと考えています。私の同僚の 1 人は、以前のプロジェクトで拡張プロパティを使用し、それがデータベースのパフォーマンスに影響を与えたと述べました。

私はこれに関して裏付けとなる情報を求めてインターネットを検索してきました。何も見つかりませんでした。

誰かがこれに遭遇しましたか?もしそうなら、これについて読むことができる記事またはリンクはありますか?

ありがとう - Mr. Do

注: これは SQL Server 2005 データベースです。

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

database-performance - 高負荷需要でデータベースのパフォーマンスを適切にテストするにはどうすればよいですか?

Web アプリケーションのストレス テストに関する多くのトピックを見つけました。

私の目標は異なります。データベースのみをテストすることです(sybase sql どこでも9)。

必要なもの:

  • すべての SQL を診断し、ボトルネックを見つけるためのツール。システム全体を簡単にマクロ表示できればいいのにと思います。
  • 優れた SQL クエリを設計/構築するためのベスト プラクティス。

システムの問題は次のとおりです。

  • 20GB のデータベース サイズ。
  • 1 秒あたり 2 ~ 5 件のリクエスト
  • 数千のSQLがコードに散らばっています(この厄介な問題は、システムを書き直すだけで解決できます)。
0 投票する
4 に答える
4714 参照

sql - SQLCOUNTパフォーマンスの質問

サンプルテーブルの構造:

次の間にパフォーマンスの違いがあるかどうかを知る必要があります。

または違いはありませんか?

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

mysql - auto_increment 値の変更は MySQL のパフォーマンスに影響しますか?

MyISAM テーブルの auto_increment 値を 1000000 に変更しました。これは読み取り/書き込みパフォーマンスに影響しますか? 行のリストが要求されるたびに、db エンジンが ID 1000000 より前の ID を検索する可能性があると考えました。