Mysql innodb は、カーネル バッファをバイパスし、Linux で直接 I/O を実現するように raw を設定します。
(Linuxコミュニティから転載)
MySQL の InnoDB ストレージ エンジンは、インデックスをキャッシュするだけでなく、そのテーブルとインデックスが RAW デバイス (Raw Device) に保存されている場合、ファイル システムのキャッシュとバッファをバイパスしてディスクに直接アクセスすることもできます。 Linux ファイル システムへの負担が大幅に軽減され、システム パフォーマンスが大幅に向上します。
さらに、データベース アプリケーションにおけるベア デバイスの最適化原則から、データベースを最適化する基本的な方向性は、デバイス固有の I/O 集中型アクセスによって引き起こされるファイル システムへの大きな負荷を軽減する方法であることもわかります。データベース。したがって、既存のファイル システム ベースのデータベース ストレージ エンジンでも、特別なファイル システム マウント方法を検討できます。
たとえば、データベース ファイルを保存するパーティションのマウント パラメーターとして noatime を使用すると、アクセス時間が記録されなくなるため、システムのパフォーマンスがある程度向上します。
─────────────────── ────────────
このノートで設定されている最新のシステム環境:
──────── ─────────────────── ──────────
OS: CentOS6
HDD: /dev/sdc /dev/sdd
RAW: /dev/raw/raw1 /dev/raw/raw2
MySQL: 5.1.61
USER: mysql:mysql
公式ウェブサイトの設定ガイドを参照してください:
─────────────────── ───────────────────
(1) rawデバイスを準備します
─────── ───────────────────── ──────────
raw デバイスを使用する前に、まずディスク デバイスを raw デバイスにバインドする必要があります。
# /bin/raw /dev/raw/raw1 /dev/sdc;
-------------------------------- --------------------------------------
/ dev/raw/raw1: バインドされていますメジャー8、マイナー32
------------------------------------------ ---- ------------------------------------------------
別の raw デバイスをバインドし、MySQL データベースの実行ユーザーに raw デバイスの読み取りと書き込みの権限を与えます。
# /bin/raw /dev/raw/raw2 /dev/sdd;# chown root:mysql /dev/raw/raw1 /dev/raw/raw2;
# chmod 0660 /dev/raw/raw1 /dev/raw /raw2;
# /bin/raw -qa;
# /bin/raw -q /dev/raw/raw1;
# /bin/ls -l /dev/raw/raw1;
# blockdev --report /dev/raw /raw1;
# blockdev --report /dev/sdc;
vi /etc/udev/rules.d/60-raw.rules;
---------------------------- -------------------------------------------------- --
ACTION=="add"、KERNEL=="sdc"、GROUP=="mysql"、MODE=="0660"、RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION= ="追加 "、KERNEL=="sdd"、GROUP=="mysql"、MODE=="0660"、RUN+="/bin/raw /dev/raw/raw2 %N"
------ --- --------------------------------------------------- --- --------------------
注: これにより、サーバーの再起動時にデバイス /dev/sdc と /dev/sdd が自動的にバインドされるようになります。
─────────────────── ──────────
(2) 必要に応じて、最初に古い InnoDB データ テーブルをバックアップします
──── ──── ───────────────── ─----------------------------
データベースがすでに実行中で、既存のデータが古い InnoDB エンジンに保存されている場合、移行する必要がある場合は、
mysqldump コマンドを使用してエクスポートしてください。データベースを閉じる前にデータを保存し、新しいエンジンが構成された後にインポートします。
mysql> SELECT テーブル スキーマ, テーブル名, エンジン FROM INFORMATION_SCHEMA.TABLES;
mysql> SELECT テーブル スキーマ, テーブル名 FROM INFORMATION_SCHEMA.TABLES WHERE エンジン='InnoDB';
mysqldump -u root -p -h localhost [データベース].[テーブル] >
注: 古いデータはテーブルごとにエクスポートする必要があります。─────────────────── ────────────
(3) 初期化フェーズ中の MySQL 設定
──────── ───────────────── ──────────
新しいデータ ファイルを作成するときは、innodb_data_file_path:
のデータ ファイル サイズの直後にキーワード newraw
# vi /etc/my.cnf;
-------------------------------------- ------ -------------------------------------------- ----
[mysqld]
innodb_buffer_pool_size=128M
innodb_data_home_dir=
innodb_data_file_path=/dev/raw/raw1:64Mnewraw;/dev/raw/raw2:64Mnewraw
-------------- ------------------------ -------------------------------------------- ------------- ---
追記:
mysql は別の実装方法も提供しており、my.ini で innodb_flush_method を設定します
innodb_flush_method = O_DIRECT
これにより、直接 I/O も実現できます
以上がMysql innodb は、カーネル バッファをバイパスし、Linux で直接 I/O を実現するように raw を設定します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

Linuxは、豊富なツールとコミュニティサポートを提供するネイティブプラットフォームであるため、LinuxでDockerが重要です。 1. docker:sudoapt-getupdateとsudoapt-getinstalldocker-cedocker-ce-clicotainerd.ioを使用します。 2。コンテナの作成と管理:Dockerrun-D-Namemynginx-P80:80NginxなどのDockerrunコマンドを使用します。 3。DockerFileを書き込み:画像サイズを最適化し、マルチステージ構造を使用します。 4。最適化とデバッグ:DockerLogsとDockerexを使用します

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

SQLはリレーショナルデータベースを管理するための標準言語であり、MySQLはSQLを使用するデータベース管理システムです。 SQLは、CRUD操作を含むデータベースと対話する方法を定義しますが、MySQLはSQL標準を実装し、ストアドプロシージャやトリガーなどの追加機能を提供します。

MySQLは、迅速な開発や中小規模のアプリケーションに適していますが、Oracleは大規模な企業や高可用性のニーズに適しています。 1)MySQLはオープンソースで使いやすく、Webアプリケーションや中小企業に適しています。 2)Oracleは強力で、大企業や政府機関に適しています。 3)MySQLはさまざまなストレージエンジンをサポートし、Oracleは豊富なエンタープライズレベルの機能を提供します。

Centosは、優れたセキュリティ、安定性、パフォーマンスのために、サーバー環境とエンタープライズ環境にとって最初の選択肢です。 1)セキュリティは、システムセキュリティを改善するために、SELINUXを介した強制アクセス制御を提供します。 2)システムの安定性を確保するために、安定性はLTSバージョンによって最大10年間サポートされています。 3)パフォーマンスにより、カーネルとシステムの構成を最適化することにより、システムの応答速度とリソースの使用率が大幅に向上します。

Linuxのコアコンポーネントには、カーネル、ファイルシステム、シェル、ユーザー、カーネルスペース、デバイスドライバー、パフォーマンスの最適化とベストプラクティスが含まれます。 1)カーネルは、ハードウェア、メモリ、プロセスを管理するシステムのコアです。 2)ファイルシステムはデータを整理し、Ext4、BTRFS、XFSなどの複数のタイプをサポートします。 3)シェルは、ユーザーがシステムと対話するためのコマンドセンターであり、スクリプトをサポートします。 4)システムの安定性を確保するために、ユーザースペースをカーネルスペースから分離します。 5)デバイスドライバーは、ハードウェアをオペレーティングシステムに接続します。 6)パフォーマンスの最適化には、システム構成とベストプラクティスのチューニングが含まれます。
