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 サイトのアクセス速度が急激に低下し、バックエンド データベースに多大な負荷がかかり、すぐにアクセスできなくなる可能性があるというジレンマがあります。ページを開くと