ホームページ  >  記事  >  数百万のデータに基づいた mysql の詳細な分析

数百万のデータに基づいた mysql の詳細な分析

藏色散人
藏色散人転載
2019-04-29 10:17:535618ブラウズ

Mysql は非常に優れた無料データベースとして広く利用されており、通常私たちが開発するプロジェクトのデータが 100 万を超えることはほとんどありません。最近、私は数百万のデータの場合の mysql の最適化に関する詳細な研究に多くの時間を費やしました。たくさんの問題に遭遇して解決したので、それを皆さんと共有したいと思います。貴重なご意見大歓迎です!

1. 100 万レベルのデータ msql テスト環境の紹介

mysql は count(*) を使用して、300 万個のデータの総数をクエリします。データ (myisam エンジン) 条件 (インデックス作成が正しく設定されている) は正常に動作します。頻繁に読み取られるデータの場合は、myIsam エンジンを使用することをお勧めします...

詳細については、「数百万のデータ msql テスト環境の紹介

# をクリックしてください。 #2、数百万のデータの下での MySQL ページングの問題

私たちは開発プロセス中にページングをよく使用しますが、その中核となるテクノロジーはデータの読み取りに制限を使用することです。ページングに制限を使用するテスト プロセス中に、次のデータが取得されました。

select * from news order by id desc limit 0,10
耗时0.003秒
select * from news order by id desc limit 10000,10
耗时0.058秒
select * from news order by id desc limit 100000,10
耗时0.575秒
select * from news order by id desc limit 1000000,10
耗时7.28秒

データ量が大きい場合、MySQL のページング開始点を大きくすると、クエリ速度が遅くなることがわかり、驚きました。 100 万件のクエリ速度はすでに 7 秒かかります。これは受け入れられない値です...

詳細については、「

数百万のデータ下での MySQL ページングの問題

3 をクリックしてください。数百万未満のデータmysql 条件付きクエリとページング クエリに関する注意事項

前のセクション「数百万のデータによる Mysql ページングの問題」に引き続き、クエリ条件を追加します。スピード! !最初のセクション「数百万のデータに対する MySQL データ テスト環境の概要」の知識を使用して最適化します...

詳細については、「

数百万のデータの下での mysql 条件付きクエリとページング クエリに関する注意事項」を参照してください。

"

4. mysql ストレージ エンジン myIsam と innodb の違い

MySQL にはさまざまなストレージ エンジンがあり、そのうちの 2 つは MyISAM と InnoDB です。もの。これら 2 つのエンジンに関する基本概念をいくつか紹介します (詳細な紹介ではありません)。

MyISAM は MySQL のデフォルトのストレージ エンジンです。従来の ISAM タイプに基づいており、全文検索をサポートしていますが、トランザクションセーフではなく、外部キーをサポートしていません。各 MyISAM テーブルは 3 つのファイルに保存されます: frm ファイルはテーブル定義を保存し、データ ファイルは MYD (MYData)、インデックス ファイルは MYI (MYIndex)...

クリックして詳細を確認します: "

mysql storage エンジン myIsam と innodb の違い

>>

5. MySQL パフォーマンス最適化の経験

ほとんどの MySQL サーバーではクエリ キャッシュが有効になっています。これはパフォーマンスを向上させる最も効果的な方法の 1 つであり、MySQL データベース エンジンによって処理されます。多数の同一のクエリが複数回実行されると、これらのクエリ結果はキャッシュに配置されるため、後続の同一のクエリはテーブルを操作する必要がなく、キャッシュされた結果に直接アクセスできます...

詳細については、クリックしてください: "

MySQL パフォーマンス最適化に関するいくつかの経験

"

声明:
この記事はhcoder.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。