この記事では、例を使用して、MySQL インデックスがソートに与える影響を説明します。ご参考までに、詳細は以下の通りです。 インデックスはクエリ速度を向上させるだけでなく、ソート速度も向上させます。order by の後のステートメントでインデックスを使用すると、ソート速度が向上します。 テスト 1. テストテーブルを作成する: t15 テーブル テーブル `t15` を作成します ( `id` int(10) 符号なし NOT NULL AUTO_INCREMENT, `cat_id` int(10) unsigned NOT NULL DEFAULT '0', `price` 小数点(10,2) NOT NULL デフォルト '0.00', `name` char(5) NOT NULL DEFAULT '' 主キー (`id`)、 ) エンジン=InnoDB デフォルト文字セット=utf8 2. 10,000行のデータを挿入する <?php $db = 'テスト'; ローカルホストに接続します。 mysql_query('use ' . $db , $conn); mysql_query('名前をutf8に設定', $conn); ($i=1;$i<=10000;$i++) の場合 { 1. 10 進数で表されたcat_idの値。 価格 = ランド(1,50000); $name = substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,5); $sql = sprintf("t15 値に挿入 (%d,%d,%f,'%s')",$i,$cat_id,$price,$name); mysql_query($sql, $conn); } 3. ショッピングモールのウェブサイトでは通常、価格が特定のカテゴリごとに並べ替えられます。これをシミュレートして、同じ SQL ステートメントを実行してみましょう。 cat_id=1 の場合、t15 から name、cat_id、price を選択し、price で並べ替えます。 (1)最初にインデックスを追加しない クエリ分析から、Extra で (2)(cat_id, price)列にインデックスを追加する テーブル t15 を変更し、インデックス cp(cat_id,price) を追加します。 ここでのクエリ分析では、Extra は Using filesort を使用していません。つまり、インデックスを追加してからクエリを実行する SQL では、外部ソートは使用されず、インデックスソートが使用されます。インデックス自体がソートされるため、追加の order by は必要ありません。 4. 観測クエリ時間 Query_ID 1 のステートメントはインデックスを追加せずに実行され、Query_ID 3 のステートメントはインデックスを追加した後に実行されます。一方の実行時間は 0.013 秒で、もう一方の実行時間は 0.005 秒です。インデックスありの方が明らかに高速です。どこが高速かを見てみましょう。 Query_ID 1 の SQL ステートメントの詳細な時間のかかるグラフ: Query_ID 3 の SQL ステートメントの詳細な時間消費図: 明らかに、Query_ID1 の 結論:インデックスはソートの速度に一定の影響を与えます。そのため、実際の開発では、実際の状況に基づいてインデックスを策定し、ソートフィールドを可能な限りインデックスに追加する必要があります。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL インデックス操作スキルの概要」、「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...
目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...
目次導入クロージャの使用カレー作りパブリック変数の実装キャッシュカプセル化(属性のプライベート化)閉...
Google Chinaは、ウェブサイトやブログを素早く簡単に多言語化できる翻訳ツールをリリースした...
ステップ: 1. 仮想マシンディレクトリに新しいdocker-compose.ymlファイルを作成し...
参考までに、HTMLフォームの使い方を9つの簡単な例で分析します。具体的な内容は次のとおりです。 1...
歴史は常に驚くほどうまく繰り返される。西洋建築とウェブデザインは、どちらも工学と芸術の組み合わせです...
結合の書き方左結合を使用する場合、左側のテーブルが必ず駆動テーブルになりますか? 2 つのテーブルの...
例示するフロントエンド開発では、セルの幅を制限し、コンテンツが制限を超える部分に省略記号を表示する必...
この記事では、カルーセル画像の表示を実現するためのjsの具体的なコードを参考までに共有します。具体的...
導入Dockerfile ビルドの実行は、単一のコンテナの手動操作です。マイクロサービス アーキテク...
Linux CentOS 7.7 システムを Vmware にインストールする方法。最小限のインスト...
ハードウェア上の理由により、機械は標準時間にある程度追いつけない場合があり、その誤差は 1 か月で数...
1. mysql-5.7.17-winx64.zip インストール パッケージをダウンロードします ...
最近、フロントエンドの vue.js ドッキング機能モジュールに取り組んでいたとき、画像をダウンロー...