数百万のデータに基づいた 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 の違い
>>ほとんどの MySQL サーバーではクエリ キャッシュが有効になっています。これはパフォーマンスを向上させる最も効果的な方法の 1 つであり、MySQL データベース エンジンによって処理されます。多数の同一のクエリが複数回実行されると、これらのクエリ結果はキャッシュに配置されるため、後続の同一のクエリはテーブルを操作する必要がなく、キャッシュされた結果に直接アクセスできます...
詳細については、クリックしてください: "MySQL パフォーマンス最適化に関するいくつかの経験
"
ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

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

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

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

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

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

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

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

UnionRemovesDulisionallkeepsallowsincludingDuplicates;