MySQL
MySQLは、sjis (Shift_JIS)、cp932(Microsoftコードページ932)、utf8(UTF-8(3バイトまで))、utf8mb4(UTF-8(4バイトまで/MySQL5.5以降でサポート))、ujis (EUC-JP) といった文字セットを指定することで、日本語の文字を含む入出力を正しく扱うことができる。
sjisは、JIS X 0201およびJIS X 0208に準じたものであるが、同じ「Shift_JIS」でも、Windows環境で使用される文字の一部を正しく扱えない場合がある。これは、Windowsでは、前記の規格以外の拡張文字を含む、拡張されたShift_JISを使用しているためである。これらの文字をMySQLで正しく扱うには、sjisではなくcp932を指定する。同様の理由でujisではなくeucjpmsを指定すべきである。
たとえば、Microsoft AccessからUTF-8で格納するテーブルにODBCリンク経由でアクセスする場合は、MyODBCの文字セット設定をcp932にしておけば、正しく入出力できる。
MySQLはCとC++で書かれている。SQLパーサーはyaccで書かれている(実際のコンパイルにはBisonが使われる)が、字句解析にはLexは使わず自家製の字句解析器を使用している。MySQLは、AIX、BSDi、FreeBSD、HP-UX、eComStation、i5/OS、IRIX、Linux、macOS、Microsoft Windows、NetBSD、Novell NetWare、OpenBSD、OpenSolaris、OS/2Warp、QNX、Symbian、SunOS、SCO OpenServer、SCO UnixWare、Sanos、Tru64など、多くのシステムプラットフォームで動作する。OpenVMSへのMySQLのポートも存在する。
MySQLサーバーソフトウェアとクライアントライブラリは、デュアルライセンス配布を使用している。
SSLサポート
クエリキャッシング
サブSELECT(ネストされたSELECT)
ビルトインされたレプリケーションサポート 非同期レプリケーション:1つのマスターから多数のスレーブへのマスター/スレーブ、または1つのスレーブへの多数のマスター。 準同期レプリケーション:マスターがレプリケーション時に待機するマスターからスレーブへのレプリケーション。 同期レプリケーション: マルチマスターレプリケーションはMySQL Clusterにて提供される。 仮想同期 :マルチマスターサポートを備えたMySQLサーバーの自己管理グループは、Galera Clusterまたは組み込みのGroup Replicationプラグインを使用して実行できる。
全文索引付けおよび検索
組み込みデータベースライブラリ
Unicodeサポート
オプティマイザーでパーティションをプルーニングしたパーティションテーブル
MySQL Clusterによる非共有クラスタリング
複数のストレージエンジン。アプリケーションの各テーブルに最も効果的なストレージエンジンを選択できる。
ネイティブストレージエンジンInnoDB、MyISAM、マージ、メモリ(ヒープ)、フェデレーション、アーカイブ、CSV、ブラックホール、NDBクラスター。
グループ化をコミットし、複数の接続から複数のトランザクションを収集して、1秒あたりのコミット数を増やす。
開発者は、約3か月ごとにMySQL Serverのマイナーアップデートをリリースする。ソースは、両方ともGPLライセンスの下で、MySQLのWebサイトまたはMySQLのGitHubリポジトリから取得できる。