今天就跟大家聊聊有關(guān)MySQL不支持的功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)是一家專業(yè)提供城關(guān)企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、H5場景定制、小程序制作等業(yè)務(wù)。10年已為城關(guān)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
MySQL不支持的功能
這里介紹其他數(shù)據(jù)庫中有而MySQL中無的功能。它介紹省略了什么功能,以及在需要這些功能時(shí)怎么辦。一般情況下, MySQL之所以忽略某些功能是因?yàn)樗鼈冇胸?fù)面性能影響。有的功能正在開發(fā)者的計(jì)劃清單上,一旦找到一種方法可以實(shí)現(xiàn)相應(yīng)的功能而又不致于影響
良好性能的目標(biāo),就會對它們進(jìn)行實(shí)現(xiàn)。
■ 子選擇。子選擇是嵌套在另一個(gè)SELECT 語句內(nèi)的SELECT 語句,如下面的查詢所示:
SELECT * FROM score
WHERE event_id IN (SELECT event_id FROM event WHERE type = "T")
子選擇打算在MySQL3.24 中給出,到那時(shí)它們就不會忽略了。但到那時(shí),許多用子選擇撰寫的查詢也可以用連接來編寫。請參閱3 . 8 . 1節(jié)“將子選擇編寫為連接”。
■ 事務(wù)處理和提交/回退。事務(wù)處理是由其他客戶機(jī)作為一個(gè)整體不中斷執(zhí)行的一組SQL語句。提交/回退功能允許規(guī)定數(shù)條語句作為一個(gè)整體執(zhí)行或不執(zhí)行。即,如果事務(wù)處理中的任何一條語句失敗,那么直到該語句前執(zhí)行的所有語句的作用都被撤消。
ySQL 自動(dòng)進(jìn)行單一SQL 語句的同步以免客戶機(jī)互相干擾。(例如,兩個(gè)客戶機(jī)不能對相同的表進(jìn)行同時(shí)寫入。)此外,可利用LOCK TABLES 和UNLOCK TABLES將數(shù)條語句組成一個(gè)整體,這使您能夠完成單條語句的并發(fā)控制所不能滿足的操作。MySQL與事務(wù)處理有關(guān)的問題是,它不能自動(dòng)對數(shù)條語句進(jìn)行組織,而且如果這些語句中有某一條失敗后也不能對它們進(jìn)行回退。
為了弄清事務(wù)處理為什么有用,可舉例說明。假如您在服裝銷售業(yè)工作,無論何時(shí),只要您的銷售人員進(jìn)行了一次銷售,都要更新庫存數(shù)目。下面的例子說明了在多個(gè)銷售人員同時(shí)更新數(shù)據(jù)庫時(shí)可能出現(xiàn)的問題(假如初始的襯衫庫存數(shù)目為4 7):
t1銷售人員1賣出3件襯衫
t2 銷售人員檢索當(dāng)前襯衫計(jì)數(shù)( 4 7):
SELECT quantity FROM inventory WHERE item = "shirt"
t3 銷售人員2賣出2件襯衫
t4 銷售人員2檢索當(dāng)前襯衫計(jì)數(shù)( 4 7)
SELECT quantity FROM inventory WHERE item = "shirt"
t5 銷售人員1計(jì)算庫存的新數(shù)目為47 - 3 = 44 并設(shè)置襯衫計(jì)數(shù)為44:
UPDATE inventory SET quantity = 44 WHERE item = "shirt"
t6 銷售人員2計(jì)算庫存的新數(shù)目為47 - 2 = 45 并設(shè)置襯衫計(jì)數(shù)為45:
UPDATE inventory SET quantity = 45 WHERE item = "shirt"
在這個(gè)事件序列結(jié)束時(shí),您已經(jīng)賣掉了5 件襯衫,但庫存數(shù)目卻是45 而不是4 2。問題是如果在一條語句中查看庫存而在另一條語句中更新其值,這是一個(gè)多語句的事務(wù)處理。第二條語句中所進(jìn)行的活動(dòng)取決于第一條語句中檢索出的值。但是如果在重疊的時(shí)間范圍內(nèi)出現(xiàn)獨(dú)立的事務(wù)處理,則每個(gè)事務(wù)處理的語句會糾纏在一起,并且互相干擾。在事務(wù)處理型的數(shù)據(jù)庫中,每個(gè)銷售人員的語句可作為一個(gè)事務(wù)處理執(zhí)行,這樣,銷售人員2 的語句在銷售人員1的語句完成之前不會被執(zhí)行。在MySQL中,可用兩種方法達(dá)到這個(gè)目的:
■ 方法1:作為一個(gè)整體執(zhí)行一組語句。可利用LOCK TABLES 和UNLOCK TABLES將語句組織在一起,并將它們作為一個(gè)原子單元執(zhí)行:鎖住所需使用的表,發(fā)布查詢,然后釋放這些鎖。這樣阻止了其他人在您鎖住這些表時(shí)使用它們。利用表同步,庫存情況如下所示:
t1銷售人員1賣出3件襯衫
t2 銷售人員1請求一個(gè)鎖并檢索當(dāng)前襯衫計(jì)數(shù)(47)
LOCK TABLES inventory WRITE
SELECT quantity FROM inventory WHERE item = "shirt"
t3 銷售人員2賣出2件襯衫
看完上述內(nèi)容,你們對MySQL不支持的功能有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁名稱:MySQL不支持的功能
路徑分享:http://m.rwnh.cn/article44/jejhee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、用戶體驗(yàn)、服務(wù)器托管、自適應(yīng)網(wǎng)站、云服務(wù)器、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)