mysqlデータベース挿入速度と読み出し速度の調整記録


(1)データベース挿入性能センターの考えを高める:データをできるだけData Fileに一括で書き込むことと、データベースのchockpointを減らすこと。今回は下の4つの構成項目を修正しました。1)innodb_flaushロゴat唵trx_comitの設定は0です。過去の経験で0に設定すると、挿入速度が大きくなります。0:Write the log buffer to the logs file and flash the logh file eversecond,but do nothing at translation comit.1:the logbuffer is written to the logh traction command the flash the fist the logth the fistars the the fistationbut the flash to disk operation is not performed on it 2)はinnodb_をautexted_increment構成は、デフォルトの8 Mが128 Mに調整されたので、この構成は主にテーブルスペースが満杯になった後、MySQLシステムが必要とされる空間を自動的にどれだけ拡張するか、各テーブルspaceが拡張されるたびに、各SQLが待機状態になります。自動拡張Sizeを増加させることで、tablespaceの自動拡張回数を減らすことができます。3)innodb_をロゴブザーsize設定は、デフォルト1 Mで16 Mに調整されたので、この設定項目の役割はinnodbデータベースエンジン書き込みログキャッシュエリアを設定します。このキャッシュを大きくすると、データベースのデータファイル作成回数を減らすことができます。4)innodb_をロゴfile_この設定項目はデフォルト8 Mによって設定されたinnodbデータベースエンジンUNDOログのサイズを設定します。データベースのchocpoint操作を減らす。以上の調整を経て、システム挿入速度はもとの10分数万本から1秒1 Wぐらいまで上昇しました。注:上記パラメータの調整は、マシンによって実際に調整する必要があります。特にinnodb_flaushロゴat唵trx_comit、innodb_ロゴブザーsizeとinnodb_ロゴfile_sizeは慎重に調整する必要があります。MySQL自体の災害処理に関わるからです。2)データベースの読み込み速度を向上させ、重いデータベースレベルでの読み込み速度の向上は主に何時のためですか?SQLの簡略化、インデックスとパーティションの追加;検査プログラムSQLを通じて、最も簡単になりました。照会条件にインデックスが追加されました。私たちは武器しか使えません。テーブルパーティションです。データベースMySQLパーティションの前に用意されています。MySQLでは、テーブル空間はデータと索引を格納するデータファイルです。S 11データベースを、複数のテーブルspaceをサポートするように、共有テーブルspaceから変更します。wb_をアメリカ.info_sinaとwb_アメリカ.info_tx二つの表をそれぞれの独立した表空間に修正する;Sina:1700 Wデータ、2.6 Gビッグデータファイル、Tencent 140 W、2.3 Gビッグデータファイル)。パーティション操作:既存のキーと索引を削除してIDを再構築し、uidのキーを結合してからuidをキーとしてパーティションを行います。この時/var/data/mysqlまでデータファイルを調べてみると、二つの大きなテーブルはそれぞれ独立したテーブル空間がいくつかのより少ない独立したパーティション空間に分割されていることが分かります。この時はuidを検索条件として検索すると、速度が上がりません。キーの値はデータの記憶されているパーティションだけではパーティションインデックスが作成されません。私はとても憂鬱です。これはOracleに比べて全然違います。)また、uidフィールドでインデックスを作成します。再度/var/data/mysqlフォルダにデータファイルを調べてみたら、各パーティションSizeが大きくなったことに気付きました。MySQLは相変わらずインデックスとデータを同じテーブルspaceに格納します。indexとデータ分離ができれば、より良い管理が可能です。以上の調整を経て、システムの読み込み速度が一時的に向上していません。基本的には2~3秒で5 Kデータの更新が完了します。MySQLデータベース挿入速度調整補充資料:MySQLは最初から1000本/分の挿入速度を10000本/秒に上げます。皆さんはもう待っていると思います。紹介します。調整の過程を全部作ります。データベース挿入性能センターの思想を向上させます。1、データベースをできるだけData File 2に一括して書き込むようにします。データベースのcheckpoint操作を減らします。3、プログラム上でできるだけデータをバッファして、一括挿入と提出を行います。4、システムのIO衝突を減少します。以上の4点の内容によって、アマチュアDBAとして、MySQLサービスに対して、下記の調整を行いました。収録記録を担当するMySQLサーバの構成を修正し、MySQL全体の書き込み速度を向上させます。具体的には次の3つのデータベース変数の値:innodb_autexted_increment、innodb_ロゴブザーsize、innodb_ロゴfile_size;この3つの変数のデフォルト値はそれぞれ5 M、8 M、8 Mで、サーバのメモリサイズと具体的な使用状況によって、この3つはそれぞれ128 M、16 M、128 Mに変更されます。また、元の2つのLog Fileを8つのLog Fileに変更します。今回の修正は主に第一と第二の点を満たしています。autexted_incrementとは、頻繁に自動的にData Fileを拡張することによってMySQLのcheckpoint操作を避けるためである。大きいテーブルを独立したテーブルに変えてパーティションを行い、異なるパーティションを複数の異なるハードディスクアレイにドロップします。以上の修正操作が完了したら、次の幸せな結果を見ました。テスト結果:Query OK、250 0000ローws affected(4 min 4.85 sec)Recordds:250 0000 Dupllicates:0 Warninings:0 QueryOK、250 0000ローws affected(4 min 58.89 sec)Recordds:250 0000 Dupllicates:0 AQininings:0 0 0 Qinininininggs:5 5 5 5 5:5 5 5 5 5:00 00 00 00 Affecteted rerererererererereds:250:Recordds:250:250:250:250 Dcords:250 Dcords:250 Dcords:250 Duds:を選択します。0000 250 rows affected(5 min 22.32 sec)Records:250 0000 Dupliccates:0 Warnings:0最後のテーブルのデータ量:+--------------------------------------------------------------------+124 1000000|+--------------上の結果から、データ量が増加すると挿入性能に影響があります。しかし、全体の速度は非常に議論されています。一日も経たないうちに、4億のデータを正常に処理することができます。データベースのボトルネックが巧みに解決されたと予想されていますが、プログラム「猿」になって、文句を言われました。お兄さんはそんなに厳しくしなくてもいいです。