web-dev-qa-db-ja.com

コンテンツタイプが多すぎると、サイトの速度とパフォーマンスに悪影響がありますか?

20の異なるコンテンツタイプを潜在的に利用できるサイトを構築しています。コンテンツタイプは非常に似ていますが、そのコンテンツタイプに固有の1つまたは2つのフィールドのみを使用でき、同じ5つのフィールドを互いに使用します。 20の異なるコンテンツタイプがあると、サイトの速度が低下しますか? FAPIまたは条件付きフィールドモジュールを使用して、1つのコンテンツタイプを作成し、ケースバイケースで一意のフィールドを表示する方が良いでしょうか?

3
revolt

コンテンツタイプの数は、Drupalサイトのパフォーマンスには影響しません。

コンテンツタイプ間でフィールドを共有すると、パフォーマンスに影響します。これは、CCKがフィールドを格納する方法が原因です。

  • フィールドが共有されておらず、1つのエントリしか許可されていない場合、そのコンテンツタイプ用に指定されたテーブルに、他のフィールドと一緒に格納されます。そうすれば、そのようなすべてのフィールドを1つのクエリでロードできます。
  • フィールドが共有されている場合、または複数のエントリが許可されている場合、フィールドは独自のテーブルに格納され、フィールドの読み込みに必要なフィールドごとに追加のクエリ(または結合)を作成します。
18
Oswald

コンテンツタイプが多すぎることを心配する前に、データベースサーバーとクエリ、Webホスト、モジュール、およびカスタムコードのパフォーマンスを確認しました。

数十種類のコンテンツタイプを持つサイトがいくつかあり、それらは急速に叫んでいます。これらのコンテンツタイプの一部には、100,000以上のノードも含まれています。

1
Citricguy

多くのコンテンツタイプがサイトのパフォーマンスに劇的な影響を与える理由は考えられません。おそらく、多くの異なるコンテンツタイプのデータを表示するビューを作成する場合、クエリは少し遅くなりますが、批評家が言うように、他の要素がはるかに重要です。

とはいえ、多数のコンテンツタイプを作成する前に考慮すべきことは、ユーザーエクスペリエンスと保守性です。

サイトにコンテンツを作成するユーザーはわかりませんが、それらのユーザーがコンテンツタイプの違いを理解していることを確認する必要があります。エンドユーザーがタスクを実行するために必要なタイプを知らない場合、多数のタイプが非常に大きなしきい値になる可能性があります。

保守性のために、後の段階ですべてのコンテンツタイプを変更する必要がある場合、それは多くの作業になる可能性があります。フィールドを追加したり、コメント設定を変更するだけの簡単な作業は、突然退屈な作業になります。

上記の両方の問題を回避する方法は、すべてのフィールドを含む単一のコンテンツタイプを作成し、分類用語を使用してコンテンツのタイプを識別することです。ユーザーエクスペリエンスを向上させるために、 条件フィールド モジュールを使用して、分類用語(または他のフォーム値)に基づいて特定のフィールドを非表示および表示できます。

1
marcvangend

ほとんどのデータフィールドを共有するコンテンツタイプをマージし、「違い」をコンテンツ/コンテンツタイプのフィールド管理セクション内のグループに整理することもできます。

扱いにくいように見える場合は、垂直タブモジュールを使用してすべてをクリーンアップし、ユーザーを圧倒しないでください。 http://drupal.org/project/vertical_tabs

著者の編集フローを簡略化することは良いことだと思います。

0
David Colburn