私はMySQLを初めて使い、これを使って本のデータベースを管理しています。各書籍には、標準的なデータと説明に加えて、その他のテキストフィールドがあり、書籍に依存する場合があります。例えば、本にはいくつかのレビュー、リンクなどがあるかもしれません。group_concatを使用した単一クエリ内の複数のテキストフィールド
私はbook_id、フィールドタイプ(例:レビュー)、およびフィールドの内容を持つテーブルにこれらを保存すると考えました。
私の問題は、1冊の書籍のすべてのデータを取得したときにクエリを最適化したいということです。 2番目のクエリですべての追加のテキストフィールドデータを取得するだけでも簡単です。しかし、group_concatを使用してこれらの追加のテキストフィールドを含むすべてのブック情報を1つのクエリで提供すると、パフォーマンスが大幅に向上しますか?
これは私のセパレータ文字がエスケープされていることを確認しなければならないことを意味し、データを取得した後にエスケープする必要があります。どちらのアプローチが私にとってうまくいくのでしょうか?
ありがとうございます!
必要なデータを取得し、DBのクエリ方法を推測しないでください。何千ものレコードがあり、実際にボトルネックがある場合は、適切なインデックスを追加することについて考えることができます。 –
私はそれを間違いなく置いていませんでした - これは私がウェブサイト用に作成した新しいデータベースなので、正しい方法で始めたいと思います。 –
ああ、OK。データベースが正規化されていることを確認してください。他のすべてがその場に落ちるでしょう。フィールド内に独自のミニデータベースを実装しようとしないでください。 –