ウェブサイト検索

MySQLとは何ですか? MySQL はどのように動作するのでしょうか?


MySQL は、世界で最も人気のあるエンタープライズ グレードのオープンソース リレーショナル データベース管理システム (RDBMS) であり、Facebook、Google、Adobe、Alcatel Lucent、Zappos で使用されています。多くのオンライン Web サイト/アプリケーションでも利用できます。

これはオラクル社によって開発、配布、サポートされています。これは、データベースの作成と操作に使用される標準化言語であるSQL (構造化クエリ言語) に基づいた、クロスプラットフォームで強力かつ柔軟で拡張可能なリレーショナル データベースです。

最新バージョンの MySQL (この記事の執筆時点ではバージョン 8.0) は、NoSQL (「SQL だけではない)」のサポートを備えています。 ”) ドキュメント データベース。 Linux、macOS、その他の UNIX 系オペレーティング システム、および Windows にインストールできます。

MySQLをダウンロード

  • MySQL コミュニティ エディションをダウンロード
  • MySQL エンタープライズ エディションをダウンロード

MySQL データベース ソフトウェアはオープン ソースであり、GPL (GNU General Public License) を使用しています。重要なのは、ダウンロードしてソース コードにアクセスし、無料で使用できるオープンソースの MySQL Community Server と独自の MySQL Enterprise の 2 つの異なるエディションで提供されていることです。 Edition およびその他の商用製品には年間サブスクリプションが必要で、専門的なサポートやその他の多くの特典が含まれています。

MySQL は、Web データベース (最も一般的な用途)、データ ウェアハウジング、電子商取引、ログ アプリケーションなど、幅広い目的で使用されています。これは、LAMP (Linux + Apache + MySQL + LAMP) をセットアップするために一般的にインストールされるソフトウェアの 1 つです。 >PHP) または LEMP (Linux + Engine-X + MySQL + PHP) ) Web 開発と、WordPressMagnetoJoomlaDrupal< などのオンライン コンテンツ管理システムのホスティングに使用されるスタック。など多数。 PHP 以外にも、PerlNode.jsPython など、他の多くの言語もサポートされています。

Linux 上で MySQL データベースを使用してアプリケーションを設定する場合は、これらの関連ガイドを確認してください。

  • CentOS 8 に LAMP サーバーをインストールする方法
  • CentOS 8 に LEMP サーバーをインストールする方法
  • Ubuntu 20.04 で PhpMyAdmin を使用して LAMP スタックをインストールする方法
  • Ubuntu 20.04 で PhpMyAdmin を使用して LEMP スタックをインストールする方法
  • Ubuntu 20.04 で Apache を使用して WordPress をインストールする方法

MySQL はどのように動作するのでしょうか?

世にあるほとんどのデータベース管理システムと同様、MySQL はクライアント サーバー アーキテクチャを備えており、ネットワーク環境で使用できます。サーバー プログラムは、データベース ファイルが保存されているのと同じ物理システムまたは仮想システム上に常駐し、データベースとのすべての対話を担当します。

データベース管理用のMySQL ツールや他のプログラミング言語で作成されたアプリケーションなど、さまざまなクライアント プログラムがサーバーに接続してデータベース リクエストを行うことができます。サーバーはクライアントのリクエストを処理し、結果をクライアントに返します。

クライアントは、サーバーと同じシステム上に存在することも、リモート ホスト上に存在することもでき、ネットワークまたはインターネット接続を介してデータベース要求をサーバーに送信します。重要なのは、クライアントが接続するには MySQL サーバーが実行されている必要があることです。

MySQL の主な機能

MySQL は、独立したモジュールを備えた多層サーバー設計を採用しています。このサーバーは、マルチスレッド、マルチユーザー、スケーラブルで、ミッションクリティカルな高負荷の実稼働システム向けに堅牢に設計されています。トランザクション ストレージ エンジンと非トランザクション ストレージ エンジンの両方を提供し、他のストレージ エンジンの追加をサポートします。

  • MySQL は、インデックス圧縮を備えた非常に高速なB ツリー テーブル、非常に高速なスレッドベースのメモリ割り当てシステムを使用し、最適化されたネストされたループ結合を使用して非常に高速な結合を実行します。
  • 符号付き/符号なし整数、浮動小数点型 (float と double)、char と varchar、binary と varbinary、blob と text、Date、DateTime、タイムスタンプ、年、セット、列挙型、OpenGIS 空間など、多くのデータ型をサポートします。種類。
  • MySQL は、データの冗長性、マスター/スレーブ レプリケーション、マルチノード クラスタリング、バックアップとリカバリ/リストアによる高可用性 (HA) もサポートしています。幅広いバックアップの種類と戦略が提供されており、展開の要件に最も適した方法を選択できます。
  • そのセキュリティ機能には、ユーザー アカウント管理とアクセス制御、ホストベースの検証、暗号化された接続、セキュリティを実装するいくつかのコンポーネントとプラグイン (認証プラグイン、接続制御プラグイン、パスワード検証コンポーネントなど)、FIPS が含まれます。サーバーによって実行される暗号化操作に適用されるサーバー側の (連邦情報処理標準 140-2 (FIPS 140-2)) モード。

さらに、Linux の MySQL/MariaDB セキュリティのベスト プラクティスに従うことで、追加のセキュリティを確保することもできます。ただし、いつものように、データベース サーバーの総合的なセキュリティを確保するために、適切なネットワークとサーバーのセキュリティを実装していることを確認してください。

MySQL クライアントとツール

MySQL には、データベースを管理するための一般的なコマンドライン ユーティリティである mysql、mysqladmin、mysqldump などのいくつかのクライアント プログラムが付属しています。 MySQL サーバーに接続するために、クライアントはいくつかのプロトコル (たとえば、任意のプラットフォーム上の TCP/IP ソケット、または Linux などの UNIX システム上の UNIX ドメイン ソケット) を使用できます。

別の言語または環境から MySQL ステートメントに接続して実行するには、標準ベースの MySQL コネクタ (クライアント アプリケーションに MySQL サーバーへの接続を提供する) と、最も一般的なプログラミング言語用の API (MySQL リソースへの低レベルのアクセスを提供する) があります。従来の MySQL プロトコルまたは X プロトコルのいずれか)。

一般的なコネクタと API には、ODBC (Open Database Connectivity)、Java (JDBC – Java Database Connectivity)、Python、PHP、Node.js、C++、Perl、Ruby、ネイティブ C および組み込み MySQL インスタンスなどがあります。

MySQL に関する次の記事が役立ちます。

  • 最新の MySQL 8 を Debian 10 にインストールする方法
  • MySQL/MariaDB のパフォーマンスのチューニングと最適化に役立つ 15 のヒント
  • MySQL の一般的なエラーのトラブルシューティングに役立つヒント
  • MySQL 8.0 で root パスワードをリセットする方法
  • Linux でデフォルトの MySQL/MariaDB ポートを変更する方法
  • Linux で MySQL のパフォーマンスを監視するための 4 つの便利なコマンドライン ツール