php が mysql からデータを抽出する場合、どの方法がより高速ですか?
巴扎黑
巴扎黑 2017-05-18 10:44:34
0
3
635

1. 単一のデータ、つまりデータは 1 行のみで、このデータ行のフィールド記事にはカンマ (,) で区切られた 400,000 ワードが含まれます。

2. データは 400,000 個、つまり 400,000 行あり、各行のフィールド記事には 1 つの単語があります。

スキーム 1 が速い場合、ループ内でそれらを個別に抽出し、ループ内で (カンマで区切って) 400,000 項目に結合する方法。

<a href="分割後の 1 つの単語"> ;分割後の単一の単語</a>

巴扎黑
巴扎黑

全員に返信(3)
洪涛

オプション 2 の方が速いと思います。

まず1000個のデータを取得します:

リーリー

1000 個のデータを 1 つずつ処理します:

リーリー

次の 1000 アイテムを処理します

いいねを押す +0
洪涛

クエリだけに関して言えば、前者の方が間違いなく高速ですが、1 つのフィールドには 40,000 単語 (単語はカンマを含めて 7 文字としてカウントされます)、つまり 3,000,000 文字近く、約 300 万のデータが保存されます。ただし、クエリしてみると、このような長いフィールドを切り取るのは信頼できないようです。

いいねを押す +0
淡淡烟草味

1ページに40万語を並べるという単純なビジネスであれば、最初の方法の方が早いと思います

理由:
1. クエリ
方法 1. レコードを取得するために 1 行をスキャンする方法 2 では、多くの行をスキャンする必要があり、かかる時間は自明です (テーブルが大きいほど、より明らかです)。
この処理方法 1 は方法 2
2 よりもはるかに優れています。出力
方法 1 は独立して分割する必要がありますが、PHP ではまったく問題ありません。その後、両方とも出力をキャッシュする必要があります。

一般に、方法 1 の方が方法 2 よりもオーバーヘッドが少なくなります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート