摘 要:作為最被Linux社區(qū)的使用者所鐘愛(ài)的半商業(yè)數(shù)據(jù)庫(kù),MySQL的優(yōu)勢(shì)在于有極高的經(jīng)濟(jì)性,同時(shí)還擁有卓越的儲(chǔ)存功能,使得它從諸多數(shù)據(jù)庫(kù)中脫穎而出,這樣的高實(shí)用性高性?xún)r(jià)比的數(shù)據(jù)庫(kù)自然備受大批用戶(hù)的喜愛(ài)。
關(guān)鍵詞:優(yōu)勢(shì);數(shù)據(jù)庫(kù);存儲(chǔ);
1 MySQL的優(yōu)勢(shì)
1.1 許可費(fèi)用
MySQL之所以能夠有很大的使用群體主要是由于它的寬松,不僅僅在于它與其他數(shù)據(jù)庫(kù)不同的許可費(fèi)用,還有它的收費(fèi)方式。MySQL根據(jù)平臺(tái)和安裝方式的不同會(huì)設(shè)置不同的收費(fèi)標(biāo)準(zhǔn)。例如Windows版本的MySQL在所有情況中都要收費(fèi),但是任意一種Unix變種(含括Linux)的MySQL只要是不通過(guò)第三方安裝,即安裝者是用戶(hù)本人或系統(tǒng)管理員就不用收費(fèi),由第三方安裝的話(huà)那么就不是免費(fèi)的。
1.2 數(shù)據(jù)類(lèi)型
MySQL的獨(dú)特之處在于可以提供相對(duì)使用率較低的兩個(gè)字段類(lèi)型:ENUM和SET(這兩個(gè)字段在其他大部分的數(shù)據(jù)庫(kù)系統(tǒng)中是很少使用的)。ENUM是一個(gè)和Pascal有很多共同之處的枚舉模式,操作者可以通過(guò)這一模式看到如下的字段值:'red、'green'、'blue'但是MySQL存儲(chǔ)這些值時(shí)只儲(chǔ)存一個(gè)字節(jié)。SET同樣是借用于Pascal的一個(gè)枚舉類(lèi)型,不同于ENUM的是,SET可以把一個(gè)獨(dú)立的字段直接通過(guò)多個(gè)值來(lái)進(jìn)行存儲(chǔ),但是如果這樣操作的話(huà)就會(huì)導(dǎo)致一次性同時(shí)存儲(chǔ)很多枚舉值的水平,換句話(huà)說(shuō)就是留下的痕跡就會(huì)比較淺,一些情況下還會(huì)對(duì)第三范式的定義產(chǎn)生威脅,然而,一旦正確掌握了CONTAINS關(guān)鍵字和SET,就會(huì)大大地簡(jiǎn)化操作步驟,提升整體運(yùn)轉(zhuǎn)效率。
1.3 SQL的兼容性
SQL和MySQL存在不同的評(píng)判指標(biāo),大多是為了補(bǔ)償SQL語(yǔ)言腳本中存在的一些不足而設(shè)計(jì)出來(lái)的。但是,某些拓展確實(shí)可以使得MySQL具有特殊意義。舉個(gè)例子:LINK在搜索時(shí)不考慮大小寫(xiě)的問(wèn)題。此外,MySQL能做到使用者可以自由的對(duì)SQL函數(shù)進(jìn)行定義,簡(jiǎn)單來(lái)說(shuō),操作者在函數(shù)編寫(xiě)以后可以把函數(shù)在MySQL當(dāng)中集成,那么這一函數(shù)和SUM()/AVG()之類(lèi)的基本函數(shù)無(wú)甚異。被編譯到共享庫(kù)文件(.so文件)之中是這一函數(shù)必須具有的功能,在被編譯并導(dǎo)入共享數(shù)據(jù)庫(kù)以后通過(guò)LOAD FUNCTION發(fā)布裝載指令。
然而,這一數(shù)據(jù)庫(kù)也會(huì)造成SQL中一些常用功能的流失,比如不能在查詢(xún)過(guò)程中進(jìn)一步查詢(xún),同時(shí),視圖選項(xiàng)被取消了。不過(guò)大部分子查詢(xún)是能夠借助將字句簡(jiǎn)單的重寫(xiě)來(lái)實(shí)現(xiàn)的,然而大部分情況下,運(yùn)用兩個(gè)維度來(lái)進(jìn)行查詢(xún)的難度比較大,操作步驟也比較繁瑣,視圖功能的取消也是,是給程序員提供另一種便利。
1.4 參考完整性
MySQL在標(biāo)準(zhǔn)的RI機(jī)制上的缺失是它最大的缺陷。但是,創(chuàng)造MySQL的人為了解決MySQL用戶(hù)的困擾,同樣也給出了一些解決方略。提供單一的索引是解決上述問(wèn)題的最好辦法。利用龐大的數(shù)據(jù)庫(kù)來(lái)對(duì)Rule限制中存在的不足進(jìn)行補(bǔ)充,也就是在釘字段域上存在的一種限定范疇。提供不簡(jiǎn)單的檢查約束,也就是某一字段針對(duì)于一行內(nèi)不同字段的限定,還有外部的關(guān)鍵字,或者那些同RI相關(guān)的“級(jí)聯(lián)刪除”。不得不提到的一點(diǎn)在于,即便是有些情況下不能對(duì)這些功能提供支持,SQL依舊可以容忍這些句法。這樣做的好處是可以達(dá)到方便把數(shù)據(jù)庫(kù)當(dāng)中的內(nèi)容復(fù)制到MySQL中。這一操作在現(xiàn)實(shí)中是極具指導(dǎo)意義的,如果這一方法能夠得到充分的運(yùn)用,就會(huì)在將來(lái)為操作者帶來(lái)極大的便利;相反的,如果有些人沒(méi)有充分閱讀介紹文檔,就會(huì)理所當(dāng)然的認(rèn)為該功能已確實(shí)存在。
1.5 安全性
于我而言,MySQL從頭到尾最大的缺陷就是它復(fù)雜又非標(biāo)準(zhǔn)的安全系統(tǒng),而且想要改變只能運(yùn)用MySQLadmin系統(tǒng)進(jìn)行重讀權(quán)限,運(yùn)用范圍比較廣闊的SQL GRANT/REVOKE直至最新版本中才得以運(yùn)行,但即便是這樣,如今也算是真實(shí)存在了。MySQL數(shù)據(jù)庫(kù)的編寫(xiě)程序員把MySQL獨(dú)特的安全性系統(tǒng)進(jìn)行了詳細(xì)的記錄,不過(guò)對(duì)于MySQL而言一條或許沒(méi)有人曾走過(guò)的學(xué)習(xí)之路是它現(xiàn)在最需要的[2]。
1.6 數(shù)據(jù)導(dǎo)出/導(dǎo)入、恢復(fù)以及備份
由于對(duì)一致性的嚴(yán)格要求,導(dǎo)致該數(shù)據(jù)庫(kù)在恢復(fù)數(shù)據(jù)和備份數(shù)據(jù)方面獲得了程序簡(jiǎn)化,只需要將數(shù)據(jù)導(dǎo)出或?qū)刖湍軐?shí)現(xiàn)功能的復(fù)制和轉(zhuǎn)移。LOAD DATA INFILE使得導(dǎo)入數(shù)據(jù)的工作更加簡(jiǎn)單,不僅如此,SELECT INTO也使得該功能進(jìn)一步強(qiáng)化。同時(shí),由于MySQL沒(méi)有使用原始分區(qū),導(dǎo)致所數(shù)據(jù)庫(kù)中所有的備份都存在于一個(gè)系統(tǒng)中。同以往的將數(shù)據(jù)庫(kù)內(nèi)容記錄在映像的之后或之前大不相同,該數(shù)據(jù)庫(kù)中記載的SQL語(yǔ)句僅僅可以記錄至無(wú)法恢復(fù)的那一個(gè)點(diǎn)上,同時(shí)無(wú)法進(jìn)行回卷和提交。
2 MySQL的前景
MySQL的發(fā)展前景巨大,實(shí)力不容小覷。事實(shí)上,這對(duì)整個(gè)源代碼的發(fā)展都具有重要意義。前文里說(shuō)到的幾個(gè)MySQL的缺點(diǎn)現(xiàn)如今也在不斷地解決,有很多新功能也在被開(kāi)發(fā),但是對(duì)于還沒(méi)有落實(shí)存在的特點(diǎn)我不會(huì)做任何評(píng)價(jià)[3]。MySQL的創(chuàng)造者和研究者們向世界證明,在今后的研究中將重點(diǎn)進(jìn)行查詢(xún)效率的提升和查詢(xún)功能的完善。
3 總結(jié)
MySQL類(lèi)似于數(shù)據(jù)庫(kù)的過(guò)渡階段,其不具有超強(qiáng)大的數(shù)據(jù)支撐,然而又具有比Xbase等更豐富的功能。MySQL就像是企業(yè)RDBMS一樣,要依靠服務(wù)者來(lái)對(duì)整個(gè)程序進(jìn)行守護(hù),但又不能過(guò)度消費(fèi)。MySQL需要在Linux世界中尋求一個(gè)適合自己發(fā)展的位置來(lái)提供速度和簡(jiǎn)潔,又能為程序員帶來(lái)相當(dāng)多的服務(wù)。用戶(hù)可以更加簡(jiǎn)便的查詢(xún)其數(shù)據(jù)和功能,管理員們有時(shí)會(huì)覺(jué)得MySQL沒(méi)有數(shù)據(jù)庫(kù)應(yīng)有的功能,然而在沒(méi)有大牌的數(shù)據(jù)庫(kù)的前提下,MySQL還是可以發(fā)揮巨大作用的。
參考文獻(xiàn):
[1]王曉華.試析MySQL數(shù)據(jù)庫(kù)性能的調(diào)優(yōu)[J].電腦編程技巧與維護(hù),2016(22):48+82.
[2]王曉燕.MySQL安全問(wèn)題探討[J].辦公自動(dòng)化,2018,23(23):62-64.
[3]郭冰.基于MySQL數(shù)據(jù)庫(kù)的索引優(yōu)化研究[J].信息與電腦(理論版),2019(12):154-156+163.
作者簡(jiǎn)介:
何軒頎(1998-)女,瑤族,廣西,本科,在校大學(xué)生,浙江越秀外國(guó)語(yǔ)學(xué)院,研究方向:數(shù)字媒體技術(shù)研究.