999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

小議ORACLE和MYSQL的聯(lián)合查詢差異

2013-04-29 00:00:00宋占亮
中國新通信 2013年2期

【摘要】隨著計算機技術和數(shù)據(jù)處理技術的發(fā)展,數(shù)據(jù)庫管理軟件得到了越來越廣泛的應用。其中Oracle和MySql都是現(xiàn)在廣泛被應用的數(shù)據(jù)庫管理軟件,兩者在SQL語法操作方面幾乎相同,但是在語法的執(zhí)行過程中實現(xiàn)的原理有所差別,最近筆者在一個項目中將數(shù)據(jù)庫由Oracle變?yōu)榱薓ySql,結果原來的幾個聯(lián)合查詢語句的執(zhí)行效率急劇下降,甚至有時導致內存溢出,這說明兩個數(shù)據(jù)庫在執(zhí)行SQL的原理方面有所差異。本文僅就聯(lián)合查詢討論兩者差異。

【關鍵詞】OracleMySql執(zhí)行原理聯(lián)合查詢差異

Oracle和MySql都是目前得到廣泛應用的數(shù)據(jù)庫,兩者在SQL語句語法方面大致相同,但是在SQL的解析執(zhí)行機制上卻有比較明顯的差異,開發(fā)人員在項目的數(shù)據(jù)庫需要在兩者間變換的時候要注意這些差異,以免給工作帶來不必要的麻煩。本文僅結合筆者不久前的工作經歷簡單討論下兩者連表查詢過程中的差異。

一、Oracle和MySql簡介

Oracle數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產品,是目前最流行的C/S(客戶端/服務器)或B/S(瀏覽器/服務器)體系結構的數(shù)據(jù)庫之一。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個關系數(shù)據(jù)庫,它是一個完備關系的產品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。

MySQL是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。MySQL是一種關聯(lián)數(shù)據(jù)庫管理系統(tǒng),關聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內。這樣就增加了速度并提高了靈活性。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數(shù)據(jù)庫。

Oracle和MySql都支持SQL(結構化查詢語言)。SQL是用于訪問數(shù)據(jù)庫的最常用標準化語言。

二、問題的出現(xiàn)

由于某些原因,一個項目的數(shù)據(jù)庫由oracle更換為了MySql,數(shù)據(jù)庫變化后項目的大部分功能都正常,但是原來的幾個聯(lián)合查詢語句的執(zhí)行效率急劇下降,甚至有時導致內存溢出。

三、問題的模擬和分析

為了分析上述問題,分別在Oracle和MySql數(shù)據(jù)庫中建立完全相同的兩個表:city表;(字段:id,cityname)person表(字段:id,name,cityid)。City表中有100條記錄,然后通過逐漸增加person表中記錄,觀察并記錄在此過程中執(zhí)行聯(lián)合查詢兩者的差異。

當person表中記錄比較少的時候,兩者的執(zhí)行速度沒有明顯差異,很值MySql還占有微弱的優(yōu)勢,這表明作為一款開源數(shù)據(jù)庫軟件,其性能還是相當優(yōu)越的。

當person表中的記錄數(shù)增加到幾十萬條的時候,兩者的執(zhí)行效率開始出現(xiàn)差別,MySql的執(zhí)行速度開始下降。

當person表中的記錄數(shù)到達100萬的時候,oracle仍然可以正常執(zhí)行聯(lián)合查詢的操作;而MySql的報出了內存溢出的錯誤。

由上述實驗過程可知:對于完全相同的一條聯(lián)合查詢的SQL語句,盡管表面上看來兩個數(shù)據(jù)庫都在進行同樣的查詢操作,但是在實現(xiàn)的原理和機制上是不同的。

在MySQL performance tunning的課程當中,老師曾經指出:MySql對聯(lián)合查詢的支持并不完善,只是簡單的做了笛卡爾乘積而沒有進行適當?shù)膬?yōu)化操作。當數(shù)據(jù)量小的時候,還感覺不出來這個不足,但是當數(shù)據(jù)量大的時候,這個缺點就變得相當突出,甚至成為系統(tǒng)效率的最大瓶頸。

對比之下,Oracle數(shù)據(jù)庫對聯(lián)合查詢操作進行了優(yōu)化處理,因此在上面的實驗只可以順利的執(zhí)行完百萬條記錄的聯(lián)合查詢操作。

四、問題解決方法

通過上面的實驗和對相關資料的查詢和分析,問題的原因已經發(fā)現(xiàn),需要在應用MySql數(shù)據(jù)庫的條件下采取正確的聯(lián)合查詢解決方案。

MySql官方對于上述問題給出的推薦解決方案是:對于大數(shù)量的多表數(shù)據(jù)提取,不要在SQL語句中進行聯(lián)合查詢操作,推薦在軟件中進行數(shù)據(jù)的分別查詢和拼接處理操作,即變聯(lián)合查詢操作為兩次或者多次的單表查詢操作和一次或者多次的數(shù)據(jù)拼接操作。

按照上述推薦方案,變兩個表的聯(lián)合查詢操作為兩次單表查詢操作和一次數(shù)據(jù)拼接操作,這些操作都在軟件中實現(xiàn),經測試可以正常運行。

至此,問題解決。

五、結束語

本文中所探討的只是兩款數(shù)據(jù)庫軟件的差異之一,當然兩者之間還存在著很多的差別,其中有些無足輕重,有的卻非常重要,值得引起程序員和開發(fā)者的高度重視,因為這些差異會在系統(tǒng)進行數(shù)據(jù)庫變換和用多種數(shù)據(jù)庫進行開發(fā)工作時嚴重影響系統(tǒng)的性能,甚至導致系統(tǒng)癱瘓。

學習和掌握這些差異將避免給工作帶來不必要的麻煩并達到事半功倍的效果,對提高工作效率和工作質量起到一定作用。

主站蜘蛛池模板: 精品一區二區久久久久久久網站| 日韩乱码免费一区二区三区| 色妺妺在线视频喷水| 日本久久免费| 欧美一道本| 中字无码精油按摩中出视频| 99久久性生片| 国产女人爽到高潮的免费视频| 国产va欧美va在线观看| 国产欧美日韩精品综合在线| 一级毛片中文字幕| 亚洲最新网址| 99视频在线观看免费| 亚洲中文字幕国产av| 在线看片免费人成视久网下载| 亚洲日本韩在线观看| 久久99热66这里只有精品一| 久久大香香蕉国产免费网站| 欧美综合成人| 蜜桃视频一区二区三区| 青青草欧美| 欧洲成人在线观看| 欧美影院久久| 亚洲中文字幕久久精品无码一区| 欧美一级黄片一区2区| 亚洲无码37.| 91蝌蚪视频在线观看| 91精品人妻一区二区| 國產尤物AV尤物在線觀看| 永久成人无码激情视频免费| 婷婷综合亚洲| 久久这里只有精品23| 婷婷激情亚洲| 天天干天天色综合网| 日韩精品成人在线| 97一区二区在线播放| 在线观看亚洲精品福利片 | 精品久久高清| 国产精品免费久久久久影院无码| 无码人妻免费| 无码专区在线观看| 国产色爱av资源综合区| 国产成人AV综合久久| 好吊色妇女免费视频免费| 毛片手机在线看| 久久夜夜视频| 精品国产美女福到在线不卡f| 精品一区二区无码av| 99久久精彩视频| 亚洲成人免费看| 亚洲欧州色色免费AV| 色色中文字幕| a在线亚洲男人的天堂试看| 欧美精品亚洲精品日韩专区| 国产尤物在线播放| 美女被操黄色视频网站| 欧美日韩激情在线| 五月天在线网站| 精品一区二区久久久久网站| 精品超清无码视频在线观看| 麻豆精品视频在线原创| 丁香五月亚洲综合在线| 五月六月伊人狠狠丁香网| 国产精品密蕾丝视频| 亚洲a级毛片| 国产主播喷水| 在线a网站| 亚洲中文无码h在线观看 | 视频国产精品丝袜第一页| 超薄丝袜足j国产在线视频| 国内精品九九久久久精品| 日韩激情成人| 曰AV在线无码| 亚洲bt欧美bt精品| 老熟妇喷水一区二区三区| 高潮爽到爆的喷水女主播视频| 国产丰满大乳无码免费播放| 国产黄网永久免费| 国产乱人伦精品一区二区| 精品国产美女福到在线不卡f| 一级片免费网站| 美臀人妻中出中文字幕在线|