1. 使用核心線程的完全多線程。這意味著它能很容易地利用多CPU如果有)。
2. 支持C 、C++、 Eiffel 、 Java、 Perl、 PHP、Python、和 TCL API等客戶工具和 API。
3. 可運行在不同操作系統平台上。
4. 支持多種列類型:1、 2、 3、4、和 8 字節長度的有符號/無符號整數、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SET和ENUM類型。
5. 利用一個優化的一遍掃描多重聯結one-sweep multi-join)非常快速地進行聯結(join)。
6. 在查詢的SELECT和WHERE部分支持全部運算符和函數,例如:
mysql> SELECT CONCAT(first_name, " ", last_name) FROM tbl_name
WHERE income/dependents > 10000 AND age > 30;
7. 通過一個高度優化的類庫實現SQL函數庫並且像他們能達到的一樣快速,通常在查詢初始化後不應該有任何內存分配。
8. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數( COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、 MAX()和MIN() )。
9. 支持ANSI SQL的LEFT OUTER JOIN和ODBC語法,你可以在同一查詢中混用來自不同數據庫的表。
10. 一個非常靈活且安全的權限和口令系統,並且它允許基於主機的認證。口令是安全的,因為當與一個服務器連接時,所有的口令傳送被加密。
11. ODBC for Windiws 95。所有的 ODBC 2 . 5 函數和其他許多函數。例如,你可以用Access連接你的 MySQL服務器,具備索引壓縮的快速B樹磁盤表。
12. 每個表允許有16個索引。每個索引可以由1~16個列或列的一部分組成。最大索引長度是 256 個字節(在編譯MySQL時,它可以改變)。一個索引可以使用一個CHAR或VARCHAR字段的前綴。
13. 定長和變長記錄。用作臨時表的內存散列表。
14. 大數據庫處理。我們正在對某些包含 50,000,000 個記錄的數據庫使用MySQL。
15. 所有列都有缺省值,你可以用INSERT插入一個表列的子集,那些沒用明確給定值的列設置為他們的缺省值。為了可移植性使用 GNU Automake , Autoconf 和libtool。
16. 用C和C++編寫,並用大量不同的編譯器測試,一個非常快速的基於線程的內存分配系統。
17. 全面支持ISO-8859-1 Latin1 字符集。例如,斯堪的納維亞的字符 @ringaccent{a}, @"a and @"o 在表和列名字被允許。
18. 表和列的別名符合 SQL92 標准。
19. 函數名不會與表或列名沖突。例如ABS是一個有效的列名字。
20. 客戶端使用TCP/IP 連接或Unix套接字socket)或NT下的命名管道連接MySQL。
21. MySQL特有的SHOW命令可用來檢索數據庫、表和索引的信息,EXPLAIN命令可用來確定優化器如何解決一個查詢。