MySQL最初的開發者的意圖是用mSQL和他們自己的快速低級例程(ISAM)去連接表格。不管怎樣,在經過一些測試后,開發者得出結論:mSQL并沒有他們需要的那么快和靈活。這導致了一個使用幾乎和mSQL一樣的API接口的用于他們的數據庫的新的SQL接口的產生,這樣,這個API被設計成允許為用于mSQL而寫的第三方代碼更容易移植到MySQL。
MySQL這個名字是怎么來的已經不清楚了。基本指南和大量的庫和工具帶有前綴“my”已經有10年以上,而且不管怎樣,MySQL AB創始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個密,包括開發者在內也不知道。
MySQL的海豚標志的名字叫“sakila”,它是由MySQL AB的創始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發者Ambrose Twebaze提供。根據Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉烏干達附近的坦桑尼亞的Arusha的一個小鎮的名字。
MySQL是一個小型關系型數據庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。
1.使用C和C++編寫,并使用了多種
編譯器進行測試,保證源代碼的可移植性
2.支持AIX、
FreeBSD、HP-UX、
Linux、Mac OS、
Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統
3.為多種編程語言提供了API。這些編程語言包括
C、C++、Eiffel、Java、
Perl、
PHP、Python、Ruby和Tcl等。
4.支持
多線程,充分利用CPU資源
5.優化的
SQL查詢算法,有效地提高查詢速度
6.既能夠作為一個單獨的應用程序應用在客戶端服務器網絡環境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的
編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數據表名和數據列名
7.提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑
8.提供用于管理、檢查、優化數據庫操作的管理工具
9.可以處理擁有上千萬條記錄的大型數據庫
與其他的大型數據庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規模小、功能有限(MySQL不支持視圖(已經被列入5.1版的開發計劃)、事件等)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。
目前Internet上流行的網站構架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統,Apache作為Web服務器,MySQL作為數據庫,PHP作為服務器端腳本解釋器。由于這四個軟件都是遵循GPL的開放源碼軟件,因此使用這種方式不用花一分錢就可以建立起一個穩定、免費的網站系統。
可以使用命令行工具管理MySQL數據庫(命令mysql 和 mysqladmin),也可以從MySQL的網站下載圖形管理工具MySQL Administrator和MySQL Query Browser。
phpMyAdmin是由php寫成的MySQL資料庫系統管理程式,讓管理者可用Web介面管理MySQL資料庫。
phpMyBackupPro也是由PHP寫成的,可以透過Web介面創建和管理數據庫。它可以創建偽cronjobs,可以用來自動在某個時間或周期備份MySQL 數據庫。
MyISAM? ?? ?Mysql的默認數據庫,最為常用。擁有較高的插入,查詢速度,但不支持事務
InnoDB? ?? ?事務型數據庫的首選引擎,支持
ACID事務,支持行級鎖定
BDB? ?? ?? ?源自Berkeley DB,事務型數據庫的另一種選擇,支持COMMIT和ROLLBACK等其他事務特性
Memory? ?? ?所有數據置于內存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會占用和數據量成正比的內存空間。并且其內容會在Mysql重新啟動時丟失
Merge? ?? ? 將一定數量的MyISAM表聯合而成一個整體,在超大規模數據存儲時很有用
Archive? ???非常適合存儲大量的獨立的,作為歷史記錄的數據。因為它們不經常被讀取。Archive擁有高效的插入速度,但其對查詢的支持相對較差
Federated? ?將不同的Mysql服務器聯合起來,邏輯上組成一個完整的數據庫。非常適合分布式應用
Cluster/NDB 高冗余的存儲引擎,用多臺數據機器聯合提供服務以提高整體性能和安全性。適合數據量大,安全和性能要求高的應用
CSV? ?? ?? ?邏輯上由逗號分割數據的存儲引擎
BlackHole? ?黑洞引擎,寫入的任何數據都會消失
另外,Mysql的存儲引擎接口定義良好。有興趣的開發者通過閱讀文檔編寫自己的存儲引擎。
單點(Single),適合小規模應用
復制(Replication),適合中小規模應用
集群(Cluster),適合大規模應用
左光華的mysql網絡數據庫開發教學視頻
http://www.tudou.com/playlist/mysql/Mysql6.0的alpha版于2007年初發布,新版增加了對falcon存儲引擎的支持。Falcon是Mysql社區自主開發的引擎,支持ACID特性事務,支持行鎖,擁有高性能的并發性。Mysql AB公司想用Falcon替代已經非常流行的InnoDB引擎,因為擁有后者技術的InnoBase已經被競爭對手Oracle所收購。
2008年1月16日,
Sun Microsystems宣布收購MySQL AB,出價約10億美元現金外加期權。
http://www.mysql.com/news-and-events/sun-to-acquire-mysql.html