mysql 與 Oracle 的區別,oracle 與 mysql分頁查詢的區別

文章目錄

  • mysql 與 Oracle 的區別
      • 1、并發性
      • 2、一致性
      • 3、事務
      • 4、數據持久性
      • 5、提交方式
      • 6、邏輯備份
      • 7、熱備份
      • 8、sql語句的擴展和靈活性
      • 9、復制
      • 10、性能診斷
      • 11、權限與安全
      • 12、分區表和分區索引
      • 13、管理工具
  • oracle 與 mysql分頁查詢
      • 1.Oracle分頁查詢中提供了一個偽列:ROWNUM
      • 3.如果做手動分頁查詢,可用下面的方法

mysql 與 Oracle 的區別

1、并發性

并發性是oltp數據庫最重要的特性,但并發涉及到資源的獲取、共享與鎖定。

mysql:
mysql以表級鎖為主,對資源鎖定的粒度很大,如果一個session對一個表加鎖時間過長,會讓其他session無法更新此表中的數據。
雖然InnoDB引擎的表可以用行級鎖,但這個行級鎖的機制依賴于表的索引,如果表沒有索引,或者sql語句沒有使用索引,那么仍然使用表級鎖。

oracle:
oracle使用行級鎖,對資源鎖定的粒度要小很多,只是鎖定sql需要的資源,并且加鎖是在數據庫中的數據行上,不依賴與索引。所以oracle對并發性的支持要好很多。

2、一致性

oracle:
oracle支持serializable的隔離級別,可以實現最高級別的讀一致性。每個session提交后其他session才能看到提交的更改。oracle通過在undo表空間中構造多版本數據塊來實現讀一致性,
每個session查詢時,如果對應的數據塊發生變化,oracle會在undo表空間中為這個session構造它查詢時的舊的數據塊。

mysql:
mysql沒有類似oracle的構造多版本數據塊的機制,只支持read commited的隔離級別。一個session讀取數據時,其他session不能更改數據,但可以在表最后插入數據。
session更新數據時,要加上排它鎖,其他session無法訪問數據。

3、事務

oracle很早就完全支持事務。

mysql在innodb存儲引擎的行級鎖的情況下才支持事務。

4、數據持久性

oracle
保證提交的數據均可恢復,因為oracle把提交的sql操作線寫入了在線聯機日志文件中,保持到了磁盤上,
如果出現數據庫或主機異常重啟,重啟后oracle可以考聯機在線日志恢復客戶提交的數據。
mysql:
默認提交sql語句,但如果更新過程中出現db或主機重啟的問題,也許會丟失數據。

5、提交方式

oracle默認不自動提交,需要用戶手動提交。
mysql默認是自動提交。

6、邏輯備份

oracle邏輯備份時不鎖定數據,且備份的數據是一致的。

mysql邏輯備份時要鎖定數據,才能保證備份的數據是一致的,影響業務正常的dml使用。

7、熱備份

oracle有成熟的熱備工具rman,熱備時,不影響用戶使用數據庫。即使備份的數據庫不一致,也可以在恢復時通過歸檔日志和聯機重做日志進行一致的回復。
mysql:
myisam的引擎,用mysql自帶的mysqlhostcopy熱備時,需要給表加讀鎖,影響dml操作。
innodb的引擎,它會備份innodb的表和索引,但是不會備份.frm文件。用ibbackup備份時,會有一個日志文件記錄備份期間的數據變化,因此可以不用鎖表,不影響其他用戶使用數據庫。但此工具是收費的。
innobackup是結合ibbackup使用的一個腳本,他會協助對.frm文件的備份。

8、sql語句的擴展和靈活性

mysql對sql語句有很多非常實用而方便的擴展,比如limit功能,insert可以一次插入多行數據,select某些管理數據可以不加from。
oracle在這方面感覺更加穩重傳統一些。

9、復制

oracle:既有推或拉式的傳統數據復制,也有dataguard的雙機或多機容災機制,主庫出現問題是,可以自動切換備庫到主庫,但配置管理較復雜。
mysql:復制服務器配置簡單,但主庫出問題時,叢庫有可能丟失一定的數據。且需要手工切換叢庫到主庫。

10、性能診斷

oracle有各種成熟的性能診斷調優工具,能實現很多自動分析、診斷功能。比如awr、addm、sqltrace、tkproof等
mysql的診斷調優方法較少,主要有慢查詢日志。

11、權限與安全

mysql的用戶與主機有關,感覺沒有什么意義,另外更容易被仿冒主機及ip有可乘之機。
oracle的權限與安全概念比較傳統,中規中矩。

12、分區表和分區索引

oracle的分區表和分區索引功能很成熟,可以提高用戶訪問db的體驗。
mysql的分區表還不太成熟穩定。

13、管理工具

oracle有多種成熟的命令行、圖形界面、web管理工具,還有很多第三方的管理工具,管理極其方便高效。
mysql管理工具較少,在linux下的管理工具的安裝有時要安裝額外的包(phpmyadmin, etc),有一定復雜性。

oracle 與 mysql分頁查詢

分頁查詢:就是將數據分段查詢出來,一次只查詢數據的一部分這樣做可以減少系統資源開銷,減少數據量,可以提高網絡傳輸速度分頁在不同的數據庫中的SQL語句是不同的

1.Oracle分頁查詢中提供了一個偽列:ROWNUM

ROWNUM字段不存在于任何一張表中,但是每張表都可以查詢該字段。該字段的值是結果集中每條記錄的行號ROWNUM字段的值是動態生成的,伴隨查詢過程。只要可以查詢出一條記錄,ROWNUM就會為該條記錄生成行號,從1開始每次遞增1。

由于ROWNUM是在查詢表的過程中進行編號的,所以在使用ROWNUM對結果集編行號的查詢過程中不要使用ROWNUM做大于1以上數字的判斷,否則結果集沒有任何數據

如:select * from table_A where rownum > 1是查不到任何數據的,同樣,下面的語句也是查不到任何數據的

SELECT * 
FROM(SELECT ROWNUM rn,p.*FROM table_A p
)
WHERE rn BETWEEN 6 AND 10 

如果想查出來表中6到10之間的數據,可以先把偽列查出來當做表中的一個字段,然后對該字段做where條件查詢

select * from
(select * from
(select rownum rn,p.* from table_A p)
where rownum <= 10)
where rn > 6

?

    ### 2.mysql中的分頁查詢則比較簡單,只需要用limit關鍵詞就可以

? 如:

select * from table_A limint 6,10

3.如果做手動分頁查詢,可用下面的方法

? start:(page-1)*rows+1

? end:page*rows

? page:頁數 rows:每頁顯示的記錄數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160698.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160698.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160698.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode算法題解(動態規劃)|LeetCode343. 整數拆分、LeetCode96. 不同的二叉搜索樹

一、LeetCode343. 整數拆分 題目鏈接&#xff1a;343. 整數拆分 題目描述&#xff1a; 給定一個正整數 n &#xff0c;將其拆分為 k 個 正整數 的和&#xff08; k > 2 &#xff09;&#xff0c;并使這些整數的乘積最大化。 返回 你可以獲得的最大乘積 。 示例 1: 輸入…

?極氪,中國傳統汽車品牌電動化的樣板間

這篇文章早就想寫了&#xff0c;因為太忙的原因就一直跳票&#xff0c;正好最近兩件事的出現&#xff0c;又觸發了想寫這篇文章的沖動。 兩件事主要是&#xff1a; 一&#xff0c;10 月份各家陸續公布了單月銷量以及累計銷量&#xff1b; 二&#xff0c;極氪在北京正式發布了 …

LeetCode100131. Make Three Strings Equal

文章目錄 一、題目二、題解 一、題目 You are given three strings s1, s2, and s3. You have to perform the following operation on these three strings as many times as you want. In one operation you can choose one of these three strings such that its length i…

PTA 7-2 簡單計算器

7-2 簡單計算器 分數 20 全屏瀏覽題目 作者 張彤彧 單位 浙江大學 模擬簡單運算器的工作。假設計算器只能進行加減乘除運算&#xff0c;運算數和結果都是整數&#xff0c;四種運算符的優先級相同&#xff0c;按從左到右的順序計算。 輸入格式: 輸入在一行中給出一個四則運…

【GUI】-- 10 貪吃蛇小游戲之靜態面板繪制

GUI編程 04 貪吃蛇小游戲 4.1 第一步&#xff1a;先繪制一個靜態的面板 首先&#xff0c;需要新建兩個類&#xff0c;一個StartGame類作為游戲的主啟動類&#xff1b;一個GamePanel類作為游戲的面板類。此外&#xff0c;再新建一個Data類作為數據中心(存放了小蛇各部分圖像的…

微信朋友圈全新玩法,輕松互動,引爆你的社交圈

隨著社交媒體的普及&#xff0c;越來越多的人開始利用朋友圈來展示自己的生活和與朋友互動。而在這個數字時代&#xff0c;定時發圈、跟圈和朋友圈互動已經成為了一種社交習慣。本文將介紹這些功能的概念和一鍵轉發朋友圈的實現方法。 什么是定時發圈、跟圈、朋友圈互動和一鍵轉…

Embedding技術與應用(4): Embedding應用工程探析

編者按&#xff1a;隨著互聯網內容數量的急劇增長&#xff0c;個性化推薦已成為各大科技公司的核心競爭力之一。那么&#xff0c;如何構建一個可靠、高效的基于嵌入技術的推薦系統&#xff0c;使其能夠在實際生產環境中正常運行呢&#xff1f;這是所有從業者都關心的問題。 本文…

git的實驗:cherry-pick,github對比代碼的兩種方式

某個commit&#xff0c;比如 c1&#xff0c;&#xff0c;最早是在a分支做的&#xff0c;當被cherry-pick到b分之后&#xff0c;還是一樣的revision嗎&#xff1f; 實驗1&#xff1a;c1被cherry-pick到別的分支后&#xff0c;revision不變對嗎&#xff1f;&#xff08;答案是變…

druid keepAlive 導致數據庫連接數飆升

一.背景 應用在執行完某個復雜業務&#xff0c;主要包含20幾個查詢SQL的操作后&#xff0c;會導致數據庫連接池一直升高 druid版本&#xff1a;1.2.11 druid配置文件&#xff1a; spring.datasource.druid.maxActive100 spring.datasource.druid.initialSize20 spring.datas…

python解決登錄圖形驗證碼

摘要:測試過程中經常遇到圖片驗證碼,以下主要是調用百度OCR圖片識別獲取驗證碼,實現登錄 1、百度云申請創建應用

【自動駕駛】一些業內自動駕駛專業術語釋義

Trajectory 軌跡信息&#xff0c;一般都會發布未來5-10秒的trajactory信息。 Trajectory flicker 軌跡抖動 Nudge 道內避障。在維持車道不變的情況下&#xff0c;橫向偏離車道中心以繞開obstacle/agent。 Xlane Nudge 借道避障。借用對向車道或自行車道以繞開obstacle/a…

VMware Workstation 與 Device/Credential Guard 不兼容 解決辦法

問題描述 問題描述&#xff1a; VMware 啟動虛擬機會報錯。無法運行。 錯誤信息&#xff1a;VMware Workstation 與 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 原因分析&#xff1a; 通常原因是 Window 系統開啟了 內置的Hyper-V 虛擬機。 解決方案&…

氣死了,過五關,斬六將,結果被 HR 捅了一刀!!

Hello&#xff0c;大家好&#xff0c;我是 Sunday。 大家有沒有遇到過這樣的事情&#xff1a;“過五關&#xff0c;斬六將。通過了兩輪、甚至是三輪的技術面&#xff0c;最后 HR 面被“捅死”了” 這樣的事情&#xff0c;最近在一位同學身上連續出現了兩次&#xff0c;弄得人…

【資深硬件工程師總結-千兆以太網設計指南】

文章目錄 01通用PCB布線指南02標志焊盤中的接地過孔區示例03EMI注意事項04ESD注意事項 資深硬件工程師總結-千兆以太網設計指南 本應用筆記旨在幫助客戶使用Microchip的10/100/1000 Mbps以太網器件系列設計PCB。本文檔提供有關PCB布線的建 議&#xff0c; PCB 布線是保持信號完…

【算法挨揍日記】day30——300. 最長遞增子序列、376. 擺動序列

300. 最長遞增子序列 300. 最長遞增子序列 題目解析&#xff1a; 給你一個整數數組 nums &#xff0c;找到其中最長嚴格遞增子序列的長度。 子序列 是由數組派生而來的序列&#xff0c;刪除&#xff08;或不刪除&#xff09;數組中的元素而不改變其余元素的順序。例如&#…

遞增遞減運算符 ++ -- 前置后置的區別

1 18 運算符-算術運算符-遞增遞減_嗶哩嗶哩_bilibili 2 .1 #include <iostream> using namespace std; int main() {int a 0;int b 0;a ;b ;cout << "a " << a << endl;cout << "b " << b << endl;} 輸出…

whip和whep

原文為runner365.git大佬的文章 原文鏈接&#xff1a;https://blog.csdn.net/sweibd/article/details/124552793 WHIP接口 什么是whip 全稱: WebRTC-HTTP ingestion protocol (WHIP). rfc地址: rfc-draft-murillo-whip-00 簡單說&#xff0c;就是通過HTTP接口能導入webrtc媒…

上位機與plc寫心跳定時掃描連接狀態

方法一&#xff1a;上位機讀plc的某個地址&#xff0c;每秒 置0和置1&#xff0c;plc檢查地址值每3秒值都是1就報錯。 方法二&#xff1a;上位機每兩秒給地址置1&#xff0c;plc一秒讀到1就清除信號&#xff0c;讀到0說明心跳掉線了。

C++電腦組裝項目(涉及知識點:多態)

需求&#xff1a; #include <iostream> #include "Computer.h" #include "AbstractCpu.h" #include "AbstractMemory.h" #include "AbstractVideoCard.h" #include "IntelCpu.h" #include "IntelMemory.h" …

Redis的持久化(新)

Redis中數據都保存在內存&#xff0c;但是內存中的數據變換很快&#xff0c;也很容易丟失&#xff0c;比如連接斷開、宕機停機等等。而Redis提供的數據持久化機制有RDB(Redis DataBase)和AOF(Append Only File)。 1.RDB RDB是指在指定的時間間隔內將內存中的數據集快照寫入到磁…