私はEAVモデルの非常に長いテーブルを持っています。 私のカラムはtipically ID、Timestamp、Valueです。 実際に私のクエリのパフォーマンスを向上させるIDとタイムスタンプのインデックスを作成しますが、それはまだ遅いと思われる.. 私は分割された整数フィールドでタイムスタンプを分割し、それらのフィールドのインデックスを作成するとどうなりますか?このようなもの: 年(Int)、月(Int)、日(Int)、時間(TimeStamp)、ID、値。 パフォーマンスが向上しますか? 今日私は2種類のデータベース、MySqlとPostgreSQLを使用していますが、私は両方に同じ疑念があります。大規模なEAVテーブルでタイムスタンプまたは分割時間列を使用する必要がありますか?
答えて
間違った方向です。新しいインデックスはパフォーマンスを向上させません。また、クエリの中にはいくつか問題を引き起こすものがあります。たとえば考える条件について
where tstamp between '2015-11-22' and '2016-02-03'
とし、新しいインデックスを使用できるようにしてください。
あなたは正しいです...クエリは煩雑になりますが、パフォーマンスを向上させるためにどのようなソリューションを取ることができますか?月にテーブルを作成する?また、その解決策はクエリを複雑にするでしょう...私はパーティショニングについて聞いていますが、私はそれが何をしているのか正確にはわかりません、その方向を指すべきでしょうか? –
はい、私はこの場合、最もパースペクティブな方法だと思います。実際に私は別の意味のある選択肢を見ません。 – klin
(少なくともMySQLで...)
ははは、日時を分割しないでください。
Do パーティションを使用してください。
Do は、複数のテーブルを使用します(月/ユーザー/など1つ)。
EAVの代替案について考えてみましょう。そのモデルは本質的に悪いです。 (私はタグを追加しました;他のディスカッションを参照してください)
適切な '複合'インデックスを使用してください。
SHOW CREATE TABLE
とSELECTs
を入力すると、より具体的にお手伝いできるようになります。
WHERE dt >= '2017-02-26'
AND dt < '2017-02-26' + INTERVAL 7 DAY
はい、私はそのようなものを使用してテーブルを照会するとき..私は元の投稿に入れたタグをチェックします。 –
- 1. Java - 大規模な文字列は異なるフィールド長で分割する必要があります
- 2. 大規模なDOMでクロムイベントトリガーに時間がかかります
- 3. ある時間から全体時間と部分時間を分割する必要があります(postgresql)
- 4. Pythonで大規模なelif文を縮小する必要があります
- 5. センサーデータにタイムスタンプまたは日時を使用する必要があります
- 6. テーブルを縦に分割する必要がありますか?
- 7. パーティション分割なしで大規模な削除(2回の結合が必要)
- 8. laravelでEAVモデルを使用する必要がありますか?
- 9. のYii - 民間分野の大規模な割り当て
- 10. 大きなデータモデルクラスを分割する必要がありますか?
- 11. データベース設計(私はEAVアプローチを使用する必要があります)
- 12. Wordpress検索、大規模サイト、共有サーバー - MySQL FullText Index、Lucene.net ...を使用する必要がありますか?
- 13. ロゴ - 小規模または大規模な仕事はありません
- 14. タイムスタンプを別々の日に分割する必要があります
- 15. 大規模なDataGridViewを印刷用に分割する
- 16. 大規模な数値の分割(big.Int)
- 17. oracleで大規模な更新クエリを使用してテーブルを更新する方法はありますか。
- 18. 2つの列に分割する必要があります
- 19. 大きなサイズのデータを持つテーブルを分割する必要がありますか?
- 20. AndroidでRXJavaが必要な大規模なユースケースはどこにありますか
- 21. Excelのタイムスタンプから時間を差し引く必要があります
- 22. 明確な大規模なデータベースのために長い時間を要する
- 23. Swiftで大規模なアプリケーションを作成する場合、「init」メソッドをまったく使用する必要がありますか?
- 24. 大規模なExcelファイルを小さなファイルに分割する
- 25. 大規模なXMLファイルを小さな塊に分割する
- 26. 大規模なSQLメタルC#エンティティファイルを分割する方法
- 27. 大規模なストリームを分割する際のスプリング統合バックプレッシャエラー
- 28. 大規模プロジェクト内でいくつのCuratorFrameworkを作成する必要がありますか?
- 29. NodaTime、予約時間にLocalDateTimeを使用する必要がありますか?
- 30. 空間データを使用する必要がありますか?
あなたはIDのインデックスとタイムスタンプのINEXを作成したのか、あなたが(ID、タイムスタンプ)にインデックスを作成しました:
は、日付範囲のこのパターンを使用していますか? – miracle173