ホームページ  >  記事  >  バックエンド開発  >  php mysql クエリ最適化の簡単な例_PHP チュートリアル

php mysql クエリ最適化の簡単な例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:11:06950ブラウズ

PHP + Mysql は最も頻繁に使用されるゴールデン パートナーであり、Apache と併用すると最高のパフォーマンスが得られます。

そのため、mysqlクエリを最適化する必要があります。以下は、さまざまな SQL ステートメントがクエリ速度に与える影響を示す簡単な例です。

自動インクリメント ID をプライマリ インデックスとして持つテーブル テストがあります。 ID 番号が特定の範囲内にあるレコードをクエリするには、次の SQL ステートメントを使用します。

コードは次のとおりです コードをコピー
SELECT *
FROM `test`
ID による順序asc
limit 208888,50

この SQL 文は、ID 番号 208888 のレコードから 50 件のレコードを取得することを意味します。 300,000 レコードのデータベースでテストした場合、プライマリ インデックスが確立されている場合、このステートメントの実行時間は 40 ~ 50 秒です。

では、より高速に実行できる SQL ステートメントはあるのでしょうか?どうやらあるらしい。次の SQL ステートメントを見てください:

コードは次のとおりです コードをコピー
SELECT *
FROM `test`
WHERE id
BETWEEN 208838
AND 208888

このステートメントでは、 a 条件 フィルタリング後の実際のテストの実行時間は約 0.06 秒です。

その理由は、id 属性にはインデックスがありますが、並べ替えは依然として非常にコストのかかる操作であり、慎重に使用する必要があるためです。 2 番目のステートメントにより、MySql はデータベース内に確立された B+ ツリー インデックスを最大限に活用できるため、検索速度が非常に速くなり、以前よりも数百倍速くなります。

SQL ステートメントを使用する場合、Web サイト開発者は注意する必要があることがわかります。不注意な SQL ステートメントにより、Web サイトのアクセス速度が急激に低下し、バックエンド データベースに多大な負荷がかかり、すぐにアクセスできなくなる可能性があるというジレンマがあります。ページを開くと


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444680.html技術記事 PHP + Mysql は最も一般的に使用されるゴールデン パートナーであり、Apache と併用すると最高のパフォーマンスが得られます。 だから、しっかりやる必要がある…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。