ホームページ データベース mysql チュートリアル Mysql innodb は、カーネル バッファをバイパスし、Linux で直接 I/O を実現するように raw を設定します。

Mysql innodb は、カーネル バッファをバイパスし、Linux で直接 I/O を実現するように raw を設定します。

Jul 04, 2017 pm 07:31 PM
innodb linux mysql

(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 が​​自動的にバインドされるようになります。

# vi /etc/udev/rules.d/41-local-permissions-rules;

─────────────────── ──────────

(2) 必要に応じて、最初に古い InnoDB データ テーブルをバックアップします
──── ──── ───────────────── ─----------------------------
データベースがすでに実行中で、既存のデータが古い InnoDB エンジンに保存されている場合、移行する必要がある場合は、
mysqldump コマンドを使用してエクスポートしてください。データベースを閉じる前にデータを保存し、新しいエンジンが構成された後にインポートします。

次の SQL コマンドを参照して、InnoDB データ テーブルを表示およびエクスポートできます:

mysql> SELECT テーブル スキーマ, テーブル名, エンジン FROM INFORMATION_SCHEMA.TABLES;

mysql> SELECT テーブル スキーマ, テーブル名 FROM INFORMATION_SCHEMA.TABLES WHERE エンジン='InnoDB';

必要に応じて、mysqldump を使用してデータをエクスポートできます。次の形式を参照してください (対応するデータベース名とテーブル名を使用してください)。

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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

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)

MySQLおよびPHPMYADMIN:コア機能と関数 MySQLおよびPHPMYADMIN:コア機能と関数 Apr 22, 2025 am 12:12 AM

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

LinuxのDocker:Linuxシステムのコンテナ化 LinuxのDocker:Linuxシステムのコンテナ化 Apr 22, 2025 am 12:03 AM

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の外国キーの目的を説明してください。 Apr 25, 2025 am 12:17 AM

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

mysqlとmariadbを比較対照します。 mysqlとmariadbを比較対照します。 Apr 26, 2025 am 12:08 AM

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

SQL対MySQL:2つの関係を明確にします SQL対MySQL:2つの関係を明確にします Apr 24, 2025 am 12:02 AM

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

MySQLはOracleとどのように違いますか? MySQLはOracleとどのように違いますか? Apr 22, 2025 pm 05:57 PM

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

Centos:セキュリティ、安定性、パフォーマンス Centos:セキュリティ、安定性、パフォーマンス Apr 21, 2025 am 12:11 AM

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

Linux:基本的な部分に深く潜ります Linux:基本的な部分に深く潜ります Apr 21, 2025 am 12:03 AM

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

See all articles