[Baidu Sharing] MySQL 5.1 パーティショニング技術に関する予備調査 (5)
3.1 単一テーブル クエリ
販売記録から 1999 年全体の販売記録がいくつあるかを調べる これは非常に簡単です。クエリステートメントは次のとおりです:
select count(*) from salaries s where s.from_date between "1999-01-01" and "1999-12-31" ;
以前のクエリのパフォーマンスには大きな違いがあります。パーティション分割後:
上記から、パーティションの使用後は p16 パーティションをスキャンするだけで済み、アクセスされるレコードが大幅に減少するため、当然パフォーマンスが大幅に向上することがわかります。 🎜>
パーティショニング テクノロジは使用されません。パーティショニング テクノロジが使用されます。
3.2 単一テーブル クエリ - BAD ケース
次のクエリがあるとします。
select count(*) from salaries s where year( s.from_date)=1999;
では、パーティショニング技術を活用できるかというと、答えはノーです。理由は、パーティションのキーが年 (s.from_date) ではなく s.from_date であるためです。MySQL は年が 1999 であることをインテリジェントに判断できないため、これは次のクエリ プランによって実行できます。 🎜>
つまり、実際にはすべてのパーティションにアクセスするため、パーティション関数を有効に活用できません。
Select count(*) from salaries s where year between '1999- 01-01' および '1999-12-31' ;
クエリ プランは次のとおりです:
正しく記述された SQL は、2 つのまったく異なるパフォーマンスを完全に実証できることがわかります。
-----解決策--------------------------------
学べ、学べ。
------解決策---------
学ぶ 学ぶ
------解決策---------
はい、いいです
------解決策---------
来て見て学んでください。
------解決策---------
マーク マーク baidu
------解決策----------------------
最高、最高、最高。 。 。 。 。
------解決策----------------------
Mysql を見てみましょう
------解決策----------------------
フローティング~~~~
------解決策---------
勉強して見てください!
------解決策---------
みんなの言うことに従ってください~私たちも見てみましょう
------解決策---------
学びましょう~
------解決策----------------------
これを学ぶ必要があります。
-----解決策---------
よく分かりません。通りかかりながら学びました。
------解決策---------
ハオ
-----解決策---------
通り過ぎます。 。 。見てください
-----解決策---------
私も前後に見てみました
------解決策---------
学んでください。
------解決策---------
ここがこんなに活気があるのはmysqlのせい? 返信すれば10ポイントもらえるそうです。本当かどうかは分かりません!
------解決策---------
学び、学びましょう!
------解決策---------
面接でこのような質問に遭遇し、時間 正しい、インチキ
-----解決策---------
なぜ理解できないのですか?
------解決策---------
mysqlを勉強しています
------解決策----------------------
そこから学びましょう、ありがとうございます
------解決策---------
モデレーターの視界が良くありません
------解決策---------
あまり明確ではありません
------解決策---------
こんにちは。 。 。 。 。
------解決策----------------------
学びに来てください、ありがとう、ホスト!
------解決策----------------------