ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでの MYSQL 制限の最適化

php_PHP チュートリアルでの MYSQL 制限の最適化

WBOY
WBOYオリジナル
2016-07-21 15:54:08904ブラウズ

また、10 個のデータを取る
select * from yanxue8_visit limit 10000,10

select * from yanxue8_visit limit 0,10
は、同じレベルの量ではありません。

インターネット上には、制限に関する 5 つの最適化ガイドラインも多数あります。これらはすべて MySQL マニュアルから翻訳されたものですが、それらは正しいものではありません。今日、制限の最適化に関する非常に良い記事を見つけました。元のアドレス: http://www.zhenhua.org/article.asp?id=200

この記事では、limit を直接使用する代わりに、最初にオフセット ID を取得し、次に、limit size を直接使用してデータを取得します。彼のデータによると、limit を直接使用するよりも明らかに優れています。ここでは、特に 2 つの状況でのテストにデータを使用します。 (テスト環境 win2033+p4 デュアルコア (3GHZ) +4G メモリ mysql 5.0.19)

1. オフセットが比較的小さい場合。
select * from yanxue8_visit limit 10,10
複数回実行すると、時間は 0.0004 ~ 0.0005 の間のままです
Select * From yanxue8_visit Where vid >=(
Select vid From yanxue8_visit Order By vid limit 10,1
) limit 10

複数回実行した後、時間は 0.0005 ~ 0.0006 の間、主に 0.0006 のままです。
結論: オフセット offset が小さい場合は、limit を直接使用する方が良いです。これがサブクエリの理由であることは明らかです。
2. オフセットが大きい場合。
select * from yanxue8_visit limit 10000,1
複数回実行すると、時間は約 0.0187 のままです
Select * From yanxue8_visit Where vid >=(
Select vid From yanxue8_visit Order By vid limit 10000,1
) limit 10
複数回実行、時間は約 0.0061 にとどまり、前の 1/3 にすぎません。オフセットが大きいほど、後者の方が優れていると予想できます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/318533.html技術記事同様に、10 個のデータを取得する場合、select*fromyanxue8_visitlimit10000,10 と select*fromyanxue8_visitlimit0,10 は同じレベルの量ではありません。 インターネット上の制限に関する 5 つの最適化ガイドラインも多数あります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。