背景テーブルでは、dataTime フィールドは varchar 型に設定され、保存されるデータは日付形式で、フィールドにインデックスが設定されます。しかし、ログ レコードには、このテーブルに関する遅いクエリがあります。クエリステートメントは次のとおりです。 探検する1:当初、dataTime フィールドの型が varchar であると考えられていたため、MySQL は日付のサイズ順ではなく文字列順にインデックスをソートし、範囲クエリを実行するときに日付順にインデックス範囲のパーティション分割を実行できませんでした。そこで、dataTime を datatime 型に変更してステートメントを分析したところ、依然として完全なテーブルスキャンが行われていることがわかりました。 2:クエリ条件の値を変更する digitaltwin_meteorological から count(*) を選択します。ここで、dataTime > '2021-10-15' です。 実行結果は3910です。 EXPLAIN デジタルツインのmeteorologicalから*を選択し、dataTime > '2021-10-15'を選択します。 SQL ステートメントの分析結果は、完全なテーブルスキャンです。 レコードの数を確認するために、クエリ条件を 16 に変更します。 digitaltwin_meteorological から count(*) を選択します。ここで、dataTime > '2021-10-16' です。 クエリ結果は 2525 です。16 番のクエリ ステートメントを分析してみましょう。 EXPLAIN デジタルツインのmeteorologicalから*を選択し、dataTime > '2021-10-16'を選択します。 実行結果は、インデックスを使用する範囲クエリです。 このことから、クエリされるレコードの数が多い場合、MySQL はフル テーブル スキャンの方が効率的であると判断してフル テーブル スキャンを実行することがわかります。クエリ内のレコードが少ない場合、MySQL はインデックス クエリを使用します。 3: dataTime を datetime データ型に変更した場合、クエリ条件に引用符を追加する必要がありますか? dataTime クエリ条件の引用符を削除して結果を確認します。 EXPLAIN digitaltwin_meteorological から * を選択し、dataTime > 2021-10-16 を指定します。
digitaltwin_meteorological から count(*) を選択します。ここで、dataTime > 2021-10-16 です。 計算結果は 19714 となり、これはテーブル全体のデータです。そのため、datetime クエリ条件も引用符で囲む必要があります。 4: 上記の分析はすべて、datetime 型の場合の dataTime に関するものです。元のフィールド タイプは varchar なので、これを varchar タイプに変更すると、上記の結論は依然として当てはまりますか? タイプを変更して、SQL を再度実行します。 EXPLAIN select * from digitaltwin_meteorological where dataTime > '2021-10-16'; varchar 型に変更すると、クエリ 16 は範囲スキャンではなくフル テーブル スキャンになることがわかります。 EXPLAIN デジタルツインのmeteorologicalから*を選択し、dataTime > '2021-10-17'を選択します。 17日のクエリではインデックスクエリが使用されました。 17日のデータ量は1749であることがわかります。 要約する上記の分析を通じて、次のような結論を導き出すことができます。 MySQL が日付フィールド インデックスを使用しない理由に関するこの記事はこれで終わりです。MySQL 日付フィールド インデックスに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS スタイルで一般的なグラフィック効果を示すサンプルコード
>>: 入力ボックスのプレースホルダーテキストのデフォルトの色を変更する -webkit-input-placeholder メソッド
この記事では、カレンダー効果を素早く実現するためのJavaScriptの具体的なコードを例として紹介...
1. ネットワークマシンでは、デフォルトのcentosyumソースを使用します [root@kole...
高性能で軽量なウェブサービスソフトウェアであるNginxについて高い安定性 システムリソースの消費量...
目次1. インストール2. vue2でEchartsを使用するmain.jsファイル内コンテナが与え...
ここでは、Jenkins コンテナを例に 3 つの方法を紹介します。方法1コンテナをイメージにパッケ...
<br />このタイトルを見ると、見覚えがあるかもしれません。多くのウェブサイトが同様の...
目次1. 鏡を見つける2. RabbitMQイメージをダウンロードする3. RabbitMQコンテナ...
目次FastDFSについて1. 画像を検索する2. イメージをインストールする3.1. 必要なディレ...
目次概要オブジェクトにメソッドを定義するオブジェクトリテラルオブジェクトプロトタイプ動的コンテキスト...
テキストオーバーフローを表示するにはどうすればいいですか? どのようなニーズがありますか?単一行です...
コンストラクタの借用この手法の基本的な考え方は単純です。サブタイプ コンストラクター内からスーパータ...
目次1. 基本概念2. データベース管理技術の開発3. リレーショナルデータベース(RDBMS)の概...
結果: html <canvas id="スターフィールド"><...
例:ヒント:このコンポーネントはvue-cropperの二次パッケージに基づいていますプラグインをイ...
Linux システムの Swap パーティション、つまり swap パーティションは、一般に仮想メモ...