より高速なPHPのスイッチケースまたはデータベースクエリの間、この文脈であります

ウェイン:

私はオンラインのPHP / MySQLのベース聖書検索アプリを持っています。現在、それだけで5つのバージョンを持っています。

私は今、130の以上の聖書のバージョンを追加するように要求されています。これはパフォーマンスに影響を与えることになる場合、私は考えています。

次のように私は検討していますオプションがあります。

OPTION 1:ディスプレイに本を決定するためにハードコード異なるbooknameと使用PHPのスイッチケース。これは私の現在の設定であり、これは、現在、私のアプリに追加5つの言語のためによく働いています。私は私が受け取るデータベースが唯一の本番号の列を持っているし、何のbooknameを持っていないので、この方法でそれをやりました。

場合には、選択した言語は、アフリカ(他のすべての言語のための同じプロセス)で、コードはブックの番号を確認し、適切な名前を適用します下回っ(66聖書の本)

case "101": $book ="101"; $bookword = ("GENESIS" . ' ' . strval($chapter_id) . ':' . strval($verse_id)); break;
case "102": $book ="102"; $bookword = ("EXODUS" . ' ' . strval($chapter_id) . ':' . strval($verse_id)); break;
case "103": $book ="103"; $bookword = ("LIVITIKUS" . ' ' . strval($chapter_id) . ':' . strval($verse_id)); break;
...
case "166": $book ="166"; $bookword = ("OPENBARING" . ' ' . strval($chapter_id) . ':' . strval($verse_id)); break;

これは、プルダウンメニューから毎回ユーザーの変更言語の選択を実行します

OPTION 2:列の追加bookname、各テーブル内に(各テーブルには1つの聖書のバージョンである)、各書籍の追加31000個のエントリを意味します。この方法では、booknameはすでにクエリ結果に含まれます。オプション1、唯一の本の数は、クエリの後に利用可能です。私はbooknameを追加するためにPHPのスイッチケースを使用する必要があります。

パフォーマンスの面でこれらの2の間に有意な差があるでしょう。

大安ウィルマー:

いいえ、パフォーマンスに大きな差がありません。データベースは、この種のもののために作られており、この手作業のためのコードを維持することは地獄(およびエラーが発生しやすい)になります。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=402787&siteId=1