まず、いくつかの詳細なJOIN - 私のウェブサイトで最適化は、ウェブサイトとデータベース構造について
を、あなたは英語の単語を学ぶことができ、あなたは、各単語の上の文章、協会、画像を挿入することができ、さらに、各単語にカテゴリ、サブカテゴリ、グループがあります。
私のデータベースには約20のテーブルが含まれています。私のウェブサイトに登録するユーザーは、4000行のようなものをユーザーのテーブルに「追加」する - 私のウェブサイト上の単語の数。私は重大な問題を抱えていますが、ユーザが単語をフィルタリングしている間に(検索語のようなものがありますが、char/sの&カテゴリ/ s &グループ)sqlクエリに9個のJOINがあります。結果を表示する..
の標的を結合する - テーブルユーザ内側(各ユーザーは4000行/各行=ワードを有する場合)、このスタイルに参加あります
$this->db->join('users', 'sentences.id = users.sentence_id' ,'left');
同じこと団体と、グループ、イメージ、単語間のバインドなど。 usersテーブルには文、関連、グループのIDが含まれています.JOINには接続があります。
私は何をすべきかわかりません。時間がかかりすぎます。おそらく問題はデータベースの構造ですか?複数の結合?おそらくインデックスを使用して?しかし、どうやってどこですか?索引付けが役に立たないようにすべての単語を検索する必要があるためです。
私はMySQLを使用しています。
スキーマの投稿はどうですか?また、各テーブルにどのような処理が行われるのか、そのプロセスについても説明します。 1人のユーザーが4000行をユーザーテーブルに追加するのはなぜですか? –