MySQL數(shù)據(jù)庫是一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng),所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
MySQL數(shù)據(jù)庫特色
1、支持多平臺
MySQL支持超過20種開發(fā)平臺,包括Linux、Windows、FreeBSD、IBM AIX、HP-UX、Mac OS、OpenBSD、Solaris等,這使得用戶可以選擇多種平臺實(shí)現(xiàn)自己的應(yīng)用,并且在不同平臺上開發(fā)的應(yīng)用系統(tǒng)可以很容易在各種平臺之間進(jìn)行移植。
2、價(jià)格低廉
MySQL采用GPL許可,很多情況下,用戶可以免費(fèi)使用MySQL;對于一些商業(yè)用途,需要購買MySQL商業(yè)許可,但價(jià)格相對低廉。
3、支持各種開發(fā)語言
MySQL為各種流行的程序設(shè)計(jì)語言提供支持,為它們提供了很多API函數(shù),包括C、C++、Java、Perl、PHP等。
4、提供多種存儲器引擎
MySQL中提供了多種數(shù)據(jù)庫存儲引擎,各引擎各有所長,適用于不同的應(yīng)用場合,用戶可以選擇最合適的引擎以得到最高性能。
5、高速
高速是MySQL的顯著特性,在MySQL中,使用了極快的“B樹”磁盤表(MyISAM)和索引壓縮;通過使用優(yōu)化的“單掃描多連接”,能夠?qū)崿F(xiàn)極快的連接。一直以來,高速都是MySQL吸引眾多用戶的特性之一,這一點(diǎn)可能只有親自使用才能體會。
6、支持大型數(shù)據(jù)庫
InnoDB存儲引擎將InnoDB表保存在一個(gè)表空間內(nèi),該表空間可由數(shù)個(gè)文件創(chuàng)建。這樣,表的大小就能超過單獨(dú)文件的最大容量。表空間還可以包括原始磁盤分區(qū),從而使構(gòu)建很大的表成為可能,最大容量可以達(dá)到64TB。
7、安全
靈活和安全的權(quán)限和密碼系統(tǒng),允許基于主機(jī)的驗(yàn)證。連接到服務(wù)器時(shí),所有的密碼傳輸均采用加密形式,從而保證了密碼安全。
8、功能強(qiáng)大
強(qiáng)大的存儲引擎使MySQL能夠有效應(yīng)用于任何數(shù)據(jù)庫應(yīng)用系統(tǒng),高效完成各種任務(wù),無論是大量數(shù)據(jù)的高速傳輸系統(tǒng),還是每天訪問量超過數(shù)億的高強(qiáng)度的搜索Web站點(diǎn)。
使用教程
1、啟動MySQL服務(wù)器
如何啟動MySQL。兩種方法:
一是用winmysqladmin,如果機(jī)器啟動時(shí)已自動運(yùn)行,則可直接進(jìn)入下一步操作。
二是在DOS方式下運(yùn)行
d:/mysql/bin/mysqld
2、進(jìn)入mysql交互操作界面
在DOS方式下,運(yùn)行:
d:/mysql/bin/mysql -u root -p
出現(xiàn)提示符,此時(shí)已進(jìn)入mysql的交互操作方式。
如果出現(xiàn) "ERROR 2003: Can‘t connect to MySQL server on ‘localhost‘ (10061)“,說明你的MySQL還沒有啟動。
3、退出MySQL操作界面
在mysql>提示符下輸入quit可以隨時(shí)退出交互操作界面:
mysql> quit
Bye
你也可以用control-D退出。
4、第一條命令
mysql> select version(),current_date();
+----------------+-----------------+
| version() | current_date() |
+----------------+-----------------+
| 3.23.25a-debug | 2001-05-17 |
+----------------+-----------------+
1 row in set (0.01 sec)
此命令要求mysql服務(wù)器告訴你它的版本號和當(dāng)前日期。嘗試用不同大小寫操作上述命令,看結(jié)果如何。
結(jié)果說明mysql命令的大小寫結(jié)果是一致的。
5、多行語句
一條命令可以分成多行輸入,直到出現(xiàn)分號“;”為止:
mysql> select
-> USER()
-> ,
-> now()
->;
+--------------------+-----------------------------+
| USER() | now() |
+--------------------+-----------------------------+
| ODBC@localhost| 2001-05-17 22:59:15 |
+--------------------+-----------------------------+
6、使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
3 rows in set (0.00 sec)
7、創(chuàng)建一個(gè)數(shù)據(jù)庫abccs
mysql> CREATE DATABASE abccs;
注意不同操作系統(tǒng)對大小寫的敏感。
8、選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql> USE abccs
Database changed
此時(shí)你已經(jīng)進(jìn)入你剛才所建立的數(shù)據(jù)庫abccs.
9、 創(chuàng)建一個(gè)數(shù)據(jù)庫表
首先看現(xiàn)在你的數(shù)據(jù)庫中存在什么表:
mysql> SHOW TABLES;
Empty set (0.00 sec)
說明剛才建立的數(shù)據(jù)庫中還沒有數(shù)據(jù)庫表。
更新日志
1、針對InnoDB進(jìn)行只讀查詢的Sysbench測試中,速度可達(dá)每秒500,000次查詢,為之前(250,000次)的兩倍;
2、線性擴(kuò)展到64 CPU線程;
3、改進(jìn)的復(fù)制吞吐量:在線程中使用新的多線程事務(wù)性的復(fù)制事件處理程序,并可以在并行的工作線程中運(yùn)行復(fù)雜的事務(wù);
4、改進(jìn)了數(shù)據(jù)表的在線修改功能:可在線重命名索引和擴(kuò)大varchar的數(shù)據(jù)類型;
5、新增的內(nèi)存儀表:支持跟蹤mysqld中的內(nèi)存分配和使用情況;
6、存儲程序儀表:可提供存儲程序內(nèi)部指令的執(zhí)行細(xì)節(jié);
7、可使用GET STACKED DIAGNOSTICS作為新的工具,來創(chuàng)建和清理存儲程序中的診斷信息;
8、改進(jìn)了觸發(fā)器的動態(tài)控制:支持在同一個(gè)表中對一個(gè)事件類型應(yīng)用多個(gè)觸發(fā)器;
9、實(shí)時(shí)的執(zhí)行分析;
10、改進(jìn)了JSON Explain Data:可以在優(yōu)化器中添加總查詢成本、單表查詢成本、總數(shù)據(jù)量等參數(shù)來獲得更詳細(xì)的信息。