MySQLとは何ですか? MySQLはどのように機能しますか?


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

これは、Oracle Corporationによって開発、配布、およびサポートされています。これは、データベースの作成と操作に使用されるSQL(Structured Query Language)標準化言語に基づく、クロスプラットフォームで強力、柔軟性、および拡張可能なリレーショナルデータベースです。

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

  • Download MySQL Community Edition
  • Download MySQL Enterprise Edition

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

MySQLは、Webデータベース(最も一般的な用途)、データウェアハウジング、eコマース、ロギングアプリケーションなど、幅広い目的で使用されます。これは、Web開発およびWordPressなどのオンラインコンテンツ管理システムのホスティングに使用されるLAMP(Linux + Apache + MySQL + PHP)またはLEMP(Linux + Engine-X + MySQL + PHP)スタックをセットアップするために一般的にインストールされるソフトウェアの1つです。マグネト、ジュムラ、ドルパル、その他多数。 PHPの他に、Perl、Node.js、Pythonなどを含む他の多くの言語もサポートしています。

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

MySQLはどのように機能しますか?

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

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

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

MySQLの主な機能

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

  • MySQL uses very fast B-tree tables with index compression, a very fast thread-based memory allocation system, and executes very fast joins using optimized nested-loop join.
  • It supports many data types such as signed/unsigned integers, floating-point types(float and double), char and varchar, binary and varbinary, blob and text, Date, DateTime, and timestamp, year, set, enum, and OpenGIS spatial types.
  • MySQL also supports data redundancy, and high-availability (HA) via master-slave replication, multi-node clustering, and backup and recovery/restore. It offers a wide range of backup types and strategies from which you can choose the methods that best suit the requirements for your deployment.
  • Its security features include user account management and access control, host-based verification, encrypted connections, several components and plugins (such as authentication plugins, connection-control plugins, password-validation component and many more) that implement security, as well as FIPS (Federal Information Processing Standards 140-2 (FIPS 140-2)) mode on the server-side which applies to cryptographic operations performed by the server.

さらに、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に関する次の記事が役立ちます。