使用核心線性的完全多線性。這意味著它能很容易地利用多 CPU(如果有)。
C 、C++、 Eiffel 、 Java、 Perl、 PHP、Python、和 TCL API。見20 MySQL 用戶端工具和 API。
可運行在不同的平台上,見 4.2 MySQL 支援的操作系統。
多種列類型:1、2、3、4、和 8 字節長度的有符號/無符號整數、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET 和 ENUM 類型。
利用一個最佳化的一遍掃描多重聯結(one-sweep multi-join)非常快速地進行聯結 (join)。
在查詢的 SELECT 和 WHERE 部分支援全部運算子和函數,例如:
MySQL> SELECT CONCAT(first_name, " ", last_name) FROM tbl_name
WHERE income/dependents > 10000 AND age > 30;
通過一個高度最佳化的類程式庫實現 SQL 函數庫並且像他們能達到的一樣快速,通常在查詢初始化後不應該有任何內存分配。
全面支援 SQL 的 GROUP BY 和 ORDER BY 子句,支援聚合函數 (COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX() 和 MIN() )。
支援 ANSI SQL 的 LEFT OUTER JOIN 和 ODBC 語法。
你可以在同一查詢中混用來自不同資料庫的表。
一個非常靈活且安全的權限和密碼系統,並且它允許根據主機的認證。密碼是安全的,因為當與一個服務器連接時,所有的密碼傳送被加密。
ODBC for Win32。所有的 ODBC 2.5 函數和其他許多函數。例如,你可以用 Access 連接你的 MySQL 服務器。
具備索引壓縮的快速 B 樹表。
每個表允許有 16 個索引。每個索引可以由 1~16 個列或列的一部分組成。最大索引長度是 256 個字節(在編譯 MySQL 時,它可以改變)。
一個索引可以使用一個 CHAR 或 VARCHAR 字段的前碼。
固定長度和可變長度記錄。
用作臨時表的內存散列表。
大資料庫處理。我們正在對某些包含 50,000,000 個記錄的資料庫使用 MySQL。
所有列都有缺省值,你可以用 INSERT 插入一個表列的子集,那些沒用明確給定值的列設置為他們的缺省值。
為了可移植性使用 GNU Automake , Autoconf 和 libtool。
用 C 和 C++ 編寫,並用大量不同的編譯器測試。
一個非常快速的線性的記憶體分配系統。
沒有內存漏洞。用一個商用內存漏洞監測程序測試過 (purify)。
包括 myisamchk,一個檢查、最佳化和修復資料庫表的快速實用程序。
全面支援 ISO-8859-1 Latin1 字符集。例如,斯堪的納維亞的字符 a, a and o 在表和列名字被允許。
所有資料以 ISO-8859-1 Latin1 格式保存。所有正常的字符串比較是忽略大小寫的。
根據 ISO-8859-1 Latin1 字符集進行排序 (目前瑞典語的方式)。通過在源程式中增加排序順序數組可以改變它。為了理解一個更高級的排序例子,看一看捷克語的排序程式。 MySQL支援可在編譯時指定的很多不同的字符集。
表和列的別名符合 SQL92 標准。
DELETE、INSERT、REPLACE 和 UPDATE 返回有多少行被改變(受影響)。
函數名不會與表或列名沖突。
服務器能為用戶端提供多種語言的出錯消息。
用戶端端使用 TCP/IP 連接或 Unix 套接字(socket)或 NT 下的命名管道連接 MySQL。
MySQL 特有的 SHOW 命令可用來檢索資料庫、表和索引的信息,EXPLAIN 命令可用來確定最佳化器如何解決一個查詢。