ホームページ 見出し 数百万のデータに基づいた mysql の詳細な分析

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

Apr 29, 2019 am 10:17 AM
mysql

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 パフォーマンス最適化に関するいくつかの経験

"

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ホットトピック

Check Constraintsを使用してMySQLのデータルールを実施する方法は? Check Constraintsを使用してMySQLのデータルールを実施する方法は? Aug 06, 2025 pm 04:49 PM

MySQLは、バージョン8.0.16から効果的なドメインの完全性を強制するためのチェック制約をサポートしています。 1.テーブルを作成するときに制約を追加する:createTableを使用して、18歳以上、給与> 0、部門の制限値などのチェック条件を定義します。 2。テーブルを変更して制約を追加します。AlterTableadDconstraintを使用して、名前以外の名前などのフィールド値を制限します。 3.複雑な条件を使用する:終了日≥の日付や完了ステータスなどのマルチカラムロジックと式のサポートは、終了日を持つ必要があります。 4。制約の削除:AlterTabledRopConstraintを使用して、削除する名前を指定します。 5。注:mysql8.0.16、innodbまたはmyisamを引用する必要があります

MySQLにすべてのデータベースを表示する方法 MySQLにすべてのデータベースを表示する方法 Aug 08, 2025 am 09:50 AM

MySQLにすべてのデータベースを表示するには、ShowDataBaseコマンドを使用する必要があります。 1.MySQLサーバーにログインした後、ShowDatabaseを実行できます。現在のユーザーがアクセスする許可があるすべてのデータベースをリストするコマンド。 2。information_schema、mysql、performance_schema、sysなどのシステムデータベースはデフォルトで存在しますが、許可が不十分なユーザーはそれを見ることができない場合があります。 3. selectschema_namefrominformation_schema.schemataを介してデータベースをクエリしてフィルタリングすることもできます。たとえば、システムデータベースを除外して、ユーザーが作成したデータベースのみを表示します。必ず使用してください

MySQLの既存のテーブルに主キーを追加する方法は? MySQLの既存のテーブルに主キーを追加する方法は? Aug 12, 2025 am 04:11 AM

既存のテーブルにプライマリキーを追加するには、AddPrimaryKey句を使用してAlterTableステートメントを使用してください。 1.ターゲット列にヌル値も重複もなく、notnullと定義されていることを確認してください。 2.単一列のプライマリキー構文は、変更可能なテーブル名AddPrimaryKey(列名)です。 3.マルチカラムの組み合わせプライマリキー構文は、変更可能なテーブル名AddPrimaryKeyです(列1、列2)。 4.列がnullを許可する場合、最初に変更を実行してnotnullを設定する必要があります。 5.各テーブルには1つの主キーのみがあり、追加する前に古いプライマリキーを削除する必要があります。 6.自分で増やす必要がある場合は、Modifyを使用してAuto_incrementを設定できます。操作前にデータを確認してください

一般的なMySQL接続エラーのトラブルシューティング方法は? 一般的なMySQL接続エラーのトラブルシューティング方法は? Aug 08, 2025 am 06:44 AM

MySQLサービスが実行されているかどうかを確認して、sudosystemctlstatusmysqlを使用して確認および開始します。 2.リモート接続を許可してサービスを再起動するために、バインドアドレスが0.0.0.0に設定されていることを確認してください。 3. 3306ポートが開いているかどうかを確認し、ポートを許可するファイアウォールルールを確認して構成します。 4。「アクセス」エラーの場合、ユーザー名、パスワード、ホスト名を確認し、mysqlにログインしてmysql.userテーブルをクエリしてアクセス許可を確認する必要があります。必要に応じて、 'your_user'@'%'を使用するなど、ユーザーを作成または更新して承認します。 5. caching_sha2_passwordにより認証が失われた場合

MySQLのデータベースをバックアップする方法 MySQLのデータベースをバックアップする方法 Aug 11, 2025 am 10:40 AM

MySQLDUMPを使用することは、MySQLデータベースをバックアップする最も一般的で効果的な方法です。テーブル構造とデータを含むSQLスクリプトを生成できます。 1.基本的な構文は、mysqldump-u [ユーザー名] -p [データベース名]> backup_file.sqlです。実行後、パスワードを入力してバックアップファイルを生成します。 2。-DATABASESオプションを使用して複数のデータベースをバックアップします:mysqldump-uroot-p--databasedb1db2> multive_dbs_backup.sql。 3.すべてのデータベースをバックアップしてください-all-database:mysqldump-uroot-p

顧客関係管理(CRM)のためにMySQLを最適化する 顧客関係管理(CRM)のためにMySQLを最適化する Aug 06, 2025 pm 06:04 PM

tooptimizemysqlperformance foracrmsystem、focusonindexingstrategies、schemadesignbalance、and queryeffisity.1)usepererindexingingbyanalyzingingfhereclausecolumns、jockeys、andordexeffield、およびconsonderingindexingsonsonwhereclausecolumns、and consinderingindexesonsonwhereclausecolumns、addexesonsonwhereclausecolumns、

MySQL支援PHPアプリケーションのデータベースインデックス作成戦略(B-Tree、フルテキストなど)を説明します。 MySQL支援PHPアプリケーションのデータベースインデックス作成戦略(B-Tree、フルテキストなど)を説明します。 Aug 13, 2025 pm 02:57 PM

b-TreeindexeSareBestformostphpapplications、astheisupportequalityandrangequeries、sorting、andareidealforumnsuseduseduseduseduseduseduseduseds; ororderbyclauses;

MySQLのすべての組合と組合の違いは何ですか? MySQLのすべての組合と組合の違いは何ですか? Aug 14, 2025 pm 05:25 PM

UnionRemovesDulisionallkeepsallowsincludingDuplicates;