0

ajaxポストフィルターを作りたいです。wordpress 投稿メタ (カスタム フィールド) でのフィルタリング。

私の投稿には、俳優、ジャンル、期間などのポストメタがあります..

wordpress のメタデータを使用してスクリプトを作成すると、パフォーマンスの問題が予想されます。したがって、post-id を含むカスタム データベース テーブルを作成し、次に post-meta のコピーを作成したいと考えています。

私の構造は次のようになります。

post-id Actors ジャンル デュレーション

これが最も効率的な方法ですか、それともポストメタごとに別のテーブルを作成する必要がありますか?

このような:

表 1: post-id アクター

表 2: ポスト ID のジャンル

表 3 post-id 期間

大規模なデータベースと大量のトラフィックの両方に合わせて最適化する必要があります。

  • 私はデータベース構造の設計に少し慣れていません。インデックスについても読んでいました。それらのタスクはありますか?
  • 俳優の値は、ブラッド・ピットか、彼の名前に関連する整数の 232 か?

また、上記のアイデアよりも優れたアイデアを受け入れます。

4

1 に答える 1

1

Wordpress はひどく設計されているように見えますが、それは機能し、うまく機能します。不思議なことに、その設計を研究して考えられるよりもはるかに効率的です。

別のテーブルを使用する場合は、更新後にその内容を wp データベースと同期する必要があります。簡単ではないかもしれません。

この問題は、次のいずれかの方向に進みます。

1 wp スタイルを実行して最適化する

カスタム投稿タイプでデータベースを作成します。admin で ajax-actors というページを作成し、クエリを処理して生の結果 (ヘッダーなし、フッターなし) を送信する page-ajax-actor.php ファイルを作成します。ajax で www.yoursite.com/ajax-actor を呼び出します。これは「遅い」ので、最適化する必要があります。十分なRAMが割り当てられた状態でapcが実行されていることを確認してください。wordpress の supercache または同様のプラグインを使用する / リバース プロキシを使用する

2 軽量データベースを使用して実行する

エディトリアル コンテンツに wordpress を使用し、2 つ目の軽量データベースをゼロから作成します。このようにして、特定のコンテンツに合わせてデータベースを最適化できます。

新しい Web サイトを開始する場合は、最初のソリューションを使用してください。それはより速くなり、サイトをより早くオンラインにすることができます. 次に、収益を使用してそれを最適化したり、完全に形を変えることさえできます。

俳優の値は、ブラッド・ピットか、彼の名前に関連する整数の 232 か?

エンティティ タイプごとに 1 つのテーブルを使用する必要があります。主キーは整数でなければなりません。次に、この主キーを他のテーブルから参照します。例: テーブル アクター id: 整数 / 主キー名: varchar / インデックス付き

名前のインデックスは挿入を遅くしますが、アクター名を使用した検索を劇的に高速化します。movie テーブルでは、俳優を ID で参照します。実際には、映画ごとに複数の俳優がいるため、次のようなテーブルが必要になります。

お役に立てれば。

于 2012-09-02T15:30:07.243 に答える