問題タブ [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.
database - RamDisk 上の PostgreSQL: work_mem のサイズなど?
WindowsのRAMディスクでPostgreSQLを実行して実験しています。私が行った方法は、単純にデータ ディレクトリを ramdisk に配置することでした。
特定のベンチマークを実行しなくても、パフォーマンスは素晴らしく、CPU バウンドのみのようです。私の質問は、work_mem、shared_buffers などの最適な値は何でしょうか?
データベースが RAM にある場合でも、多くのクエリを実行するのに 30 分以上かかります。したがって、テーブルにインデックスを作成する意味があるかどうかは疑問です。もちろん、インデックスはRAMにとどまる必要があります。私は PostgreSQL をデータ ウェアハウスに使用していることに言及しておく必要があります (小さいものですが)。
編集: DataRam.com の RamDisk ユーティリティを使用していることに言及する必要があります。RAMディスクを構成するときに、時々ブルースクリーンが表示されるだけで、確立されたときは表示されません。これはノスタルジックなアイキャンディーだと思います。;)
c# - ビジネス層設計のジレンマ: メモリか IO か?
私が取り組んでいるプロジェクトは、データベースからオブジェクトとオブジェクトのコレクションを取得する方法に関する設計上のジレンマに直面しています。*すべて*のオブジェクトをそのプロパティとともにデータベースからメモリにバッファリングすると便利な場合もあれば、オブジェクト ID を設定してそのプロパティをオンデマンドでクエリするだけで便利な場合もあります (すべてのプロパティを取得するには、オブジェクトごとに 1 db を呼び出します)。また、多くの場合、コレクションは、オブジェクトをメモリにバッファリングすることと、オンデマンド アクセスのために最小限の情報で初期化されることの両方をサポートする必要があります。結局のところ、すべてをメモリにバッファリングできるわけではなく、すべてをオンデマンドで読み取ることもできません。これは、ユビキタス メモリと IO の問題です。
誰かが同じ問題に直面しなければなりませんでしたか?デザインにどのような影響を与えましたか? 厳しい教訓は何ですか?他に考えや推奨事項はありますか?
編集:私のプロジェクトは、Web アプリケーション、Web サービス、およびデスクトップ アプリケーションによって消費されるビジネス レイヤー dll の典型的な例です。デスクトップ アプリケーションで製品のリストが要求され、製品名だけが表示される場合、すべての製品を表示するために次の一連の手順を使用しても問題ありません (データベースに 100 万の製品があるとします)。
1. 1 回の db 呼び出しすべての製品名を取得するには
2. ユーザーが製品をクリックして詳細を表示した場合 (オンデマンド アクセス)、すべての製品情報を取得するための 1 回の db 呼び出し
ただし、この同じ API を Web サービスで使用して、すべての製品を詳細とともに表示すると、ネットワーク トラフィックが頻繁に発生します。この場合のより良いシーケンスは次のようになります
:
database - SharedAccess2003データベースのパフォーマンス
Access 2003データベースを作成し、100人のユーザー間で共有する必要があります。ユーザーは変更を行わず、ホストマシンでスケジュールされたタスクを使用して毎日(および1回)生成されるいくつかのレポートを表示するだけです。
同時に100人のユーザーがそのコンテキストでパフォーマンスを分類しますか?
このワークフローに関して私に何をアドバイスしますか?
除外:
- データベースサーバー(sqlserverなど)の使用はトピック外です
- レポートを静的HTMLに出力することについてはすでに考えましたが、最初にデータベース全体の共有を評価したいと思います(フィルタリング機能が必要になる可能性があるため)
- 複製を避けたい
mysql - 複数のテーブルまたは単一のテーブル?
私はすでにこの質問を含むいくつかのフォーラムを見ましたが、それらは私が知りたいことの1つに答えていません。最初に私のトピックを説明します:
複数のユーザーの各ログがデータベースに入力されるシステムがあります(例:User1がログイン、User2がログイン、User1がユーザー管理を入力、User2がパスワードを変更したなど)。したがって、ユーザーあたり1日あたり100〜200のエントリを期待しています。現在、私は単一のテーブルでそれを行っており、それを表示するには、UserIDを使用してフィルターで除外する必要があります。
私の質問は、どちらがより効率的ですか?1つのテーブルを使用する必要がありますか、それともユーザーごとにテーブルを作成する必要がありますか?
単一のテーブルを使用すると、システムで数千のエントリをフィルタリングするのが困難になる可能性があるのではないかと心配しています。特にテーブルの更新に関して、複数のテーブルと1つのテーブルを使用していくつかの長所と短所を読みました。
また、どちらがより多くのスペースを節約できるか知りたいですか?複数のテーブルまたは単一のテーブル?
mysql - 複雑なクエリ マッチング パターンを使用した MySQL と PostgreSQL のパフォーマンス
約 30 のテーブルを持つ複雑なデータベースがあります。1 つのテーブルには 500,000 を超える行があり、別のテーブルには 15,000 を超える行があり、今日まで 1 つのデータベースだけに実装することにするまで、両方を別のデータベースで使用していました。
今日まで、500,000 行のテーブルは MySQL データベースにあり、15,000 行のテーブルは PostgreSQL にありました。頻繁に使用される 1 ページで、これは PHP ベンチマークの結果でした。
すべてを PostgreSQL に移行し、同じ SQL コードを変更せずに使用した後、同じページの結果は次のようになりました。
MySQL、同じインデックス、すべてにすべて同じものを入れましたが、なぜこの大きな違いがあるのか わかりません。これを最適化するにはどうすればよいですか?
編集:よりよく説明されました。
500.00 テーブルは、次の構造で構成されています。
主なクエリは次のようなものです。
EDIT2:複雑な単一のクエリでテストし、15 秒から 8/9 秒に短縮しました。それでも私には多すぎます。
sql-server-2008 - SQLAzureのパフォーマンスに関する考慮事項
SQL Azureアプリケーションを計画するときに留意すべきパフォーマンスの考慮事項はどれですか?Azure Storage、およびワーカーとWebの役割は非常にスケーラブルに見えますが、最終的に1つのデータベースを使用している場合は、ボトルネックのように見えます。
私はについての数字を見つけようとしていました:
- SQL Azureはいくつの同時接続をサポートしていますか?
- 帯域幅はどれですか?
しかし、運はありません。
たとえば、非常に高レベルの挿入を使用する計画とアプリケーションを計画していますが、毎回集計関数の結果を返す必要があるため(たとえば、列に同じキーを持つすべてのレコードの合計)、できません。テーブルストレージと一緒に行きます。
バッチ処理はオプションですが、時間応答も重要であるため、データベースが多くの接続で肥大化するのではないかと心配しています。
シャーディングは別のオプションですが、挿入の量が多い場合でも、データの量は非常に少なく、1つのPKでFKがない4〜6列です。したがって、1Gb DBでさえ、パーティションにとって過剰な(そして過剰な支払い:D)ことになります。
この種のアプリケーションに直面したときに覚えておくべきパフォーマンスキーはどれですか?
乾杯。
mysql - 遅い mysql クエリを改善する方法を学びたい
製品に特定のフィルターが適用されたすべての製品 ID を選択する MySQL クエリがあります。このクエリは機能しますが、このクエリを改善する方法を学びたいです。このクエリの代替案は、説明とともに歓迎されます。
クエリで使用されているテーブルの構造を含めました。
説明しkkx_filters
ます。
説明しkkx_filters_products
ます。
説明しkkx_products
ます。
database - 複数のサーバー上のPostgresql
postgresqlデータベースへの多数のユーザーアクセスを同時に想定します。データベースがpostgresqlのみを含む専用サーバー上にあると仮定します。データベースは保持されますか?100ユーザーの場合?1000?
別の質問:ユーザー数に関係なく保持したい場合は、データベースを複数のサーバーに分離する組み込みの方法がありますか、それとも複数のpostgresqlサーバーをインストールしてデータを分割することで分離をプログラムする必要がありますか? ?
編集:私はトランザクションを意味し、サイズではありません。そして、実行したいクエリは、単純な挿入と結合による選択です。
database-performance - データベースの動作をテストする方法は?
データ トランザクションが正しく行われていることを確認するために、サンプル データをデータベースに送信して、システム内のすべてのデータベースをチェックできるツールはありますか。さらに、サンプル データは外部から見えないようにし、アクセスできないようにする必要があります。何かアイデアがあれば、助けてください。
アップデート
ご回答ありがとうございます。しかし、あなたの与えられた答えについていくつか質問があります。
- 上記の解決策は MySQL と SQLite に適用できますか?
- もしそうなら、どこでdatabase.txtファイルを開くべきですか?
ちなみに、私はシステムに WampServer2 を使用しており、データベースは MySQL です。
android - Androidの外部ストレージでのSQLiteのパフォーマンスが悪い
サーバーに送信されるのを待っている間、データベースにイベントを保存するために外部ストレージを使用しています。
レコードを挿入すると、パフォーマンスが非常に悪くなります。外部メモリが遅くなる可能性があることは知っていますが、いくつかの数値を確認したかったので、それをテストする小さなアプリを作成しました。
コードは次のとおりです。
データベースは私の実際のアプリが使用しているものとまったく同じです。インデックスを削除しようとしましたが、違いはありませんでした。
結果は次のとおりです。
ご覧のとおり、エミュレータは信頼できないので、InsertHelper
どちらかといえば高速である必要があります。
もちろん、これは当然のことですが、テストはほとんど好奇心から行われました。
しかし、私が心配しているのは、外部メモリを使用しているときの電話のパフォーマンスの悪さです。私はいくつかの重要な側面を見逃しましたか、SQLiteDatabase
それとも単にSDカードが遅くなるためですか?
実際のアプリでロックを無効にしたことを追加できますが、ほとんど違いはありません。