ホームページ バックエンド開発 PHPチュートリアル mysql制限クエリ最適化分析_PHPチュートリアル

mysql制限クエリ最適化分析_PHPチュートリアル

Jul 21, 2016 pm 03:49 PM
from limit mysql select table コード 最適化 分析する コピー お問い合わせ 文法

制限構文:

コードをコピー コードは次のとおりです:

SELECT * FROM table LIMIT [offset,] rows OFFSET offset

LIMIT 句を使用すると、SELECT ステートメントに指定した数のレコードを強制的に返すことができます。 LIMIT は 1 つまたは 2 つの数値引数を受け入れます。パラメータは整数定数である必要があります。
2 つのパラメーターが指定された場合、最初のパラメーターは最初に返されるレコード行のオフセットを指定し、2 番目のパラメーターは返されるレコード行の最大数を指定します。最初のレコード行のオフセットは 0 (1 ではありません) です。
PostgreSQL との互換性を保つために、MySQL は構文 LIMIT # OFFSET # もサポートしています。

例:

コードをコピー コードは次のとおりです:

mysql> SELECT * FROM table LIMIT 5,10 //レコード行6-15を取得します

//特定のオフセットからレコードセットの末尾までのすべてのレコード行を取得するには、2 番目のパラメータを -1
mysql> として指定できます。 SELECT * FROM table LIMIT 95,-1; // レコード行 96 を取得します。 - 最後

//パラメータが 1 つだけ指定されている場合、LIMIT n は LIMIT 0,n と同等です
mysql> // 最初の 5 レコードを取得します。行

MySQL の制限はページングに大きな利便性をもたらしますが、データ量が多い場合、制限によるパフォーマンスは急激に低下します。
10 個のデータも取得しますが、次の 2 つの文は同じ大きさではありません。

コードをコピー コードは次のとおりです:

select * from table limit 10000,10
select * from tablelimit 0,10

この記事では、limit を直接使用する代わりに、最初にオフセットの ID を取得し、次に制限サイズを直接使用してデータを取得します。彼のデータによると、limit を直接使用するよりも明らかに優れています。

ここでは、特に 2 つの状況でのテストにデータを使用します。

1. オフセットが比較的小さい場合:

コードをコピーします コードは次のとおりです:

select * from table limit 10,10
//複数回実行、時間は0.0004-0.0005の間のままです
Select * From table Where vid >=(表から vid を選択 vid による順序 制限 10,1) 制限 10
//複数の実行では、時間は 0.0005 ~ 0.0006 の間、主に 0.0006 のままです

結論: オフセット offset が小さい場合は、limit を直接使用する方が良いです。これがサブクエリの理由であることは明らかです。

2. オフセットが大きい場合:

コードをコピーします コードは次のとおりです:

select * from table limit 10000,10
//複数回実行しても、時間は約 0.0187 のままです

Select * From table Where vid >=(Select vid From table Order By vid limit 10000,1) limit 10
//複数回実行しても、時間は約 0.0061 のままで、前の 1/3 にすぎません。オフセットが大きいほど、後者の方が優れていると予想できます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/319593.html技術記事制限構文: 次のようにコードをコピーします。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 句を使用すると、SELECT ステートメントに指定された数のレコードを強制的に返すことができます。リム...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

PHPのビッグデータ構造処理スキル

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? Jun 02, 2024 pm 02:13 PM

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?

清華大学と Zhipu AI オープンソース GLM-4: 自然言語処理に新たな革命を起こす 清華大学と Zhipu AI オープンソース GLM-4: 自然言語処理に新たな革命を起こす Jun 12, 2024 pm 08:38 PM

清華大学と Zhipu AI オープンソース GLM-4: 自然言語処理に新たな革命を起こす

C++ プログラムの最適化: 時間の複雑さを軽減する手法 C++ プログラムの最適化: 時間の複雑さを軽減する手法 Jun 01, 2024 am 11:19 AM

C++ プログラムの最適化: 時間の複雑さを軽減する手法

See all articles