自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle與Mysql應(yīng)用總結(jié)

數(shù)據(jù)庫(kù)
以前開(kāi)發(fā)的時(shí)候,一直在使用oracle,甚至參加過(guò)oracle的培訓(xùn),考過(guò)Oracle Database 10g Administrator I,自認(rèn)對(duì)oracle還算有些了解,不過(guò)最近在做一個(gè)分布式數(shù)據(jù)系統(tǒng)的測(cè)試的時(shí)候,才有“學(xué)到用時(shí)方恨少”的感悟。下文中將將為大家?guī)?lái)詳細(xì)的關(guān)于Oracle與Mysql的應(yīng)用總結(jié)。

導(dǎo)讀:在以前開(kāi)發(fā)的時(shí)候,一直在使用oracle,甚至參加過(guò)oracle的培訓(xùn),考過(guò)Oracle Database 10g Administrator I,自認(rèn)對(duì)oracle還算有些了解,不過(guò)最近在做一個(gè)分布式數(shù)據(jù)系統(tǒng)的測(cè)試的時(shí)候,才有“學(xué)到用時(shí)方恨少”的感悟。Oracle與Mysql的應(yīng)用是怎樣的呢?在此把最近總結(jié)的一些東西陸續(xù)跟測(cè)試 部的同學(xué)們一起分享吧。

1. in如何與list綁定:

一個(gè)帶in子查詢(xún)的語(yǔ)句相信對(duì)很多人來(lái)說(shuō)都是司空見(jiàn)慣了的,例如:「select * from normaltbl_ora where pk in (1,2,3,4)」、「select * from normaltbl_ora where name in (“manhong”,”yihuan”,”gongyangyu”,”yaolingling”) 」。但是如果in的查詢(xún)字段上沒(méi)有建立索引或者無(wú)法通過(guò)索引查詢(xún),那數(shù)據(jù)庫(kù)會(huì)將該字段與in里面的每個(gè)值都進(jìn)行比較運(yùn)算,如果記錄數(shù)有成千上萬(wàn)條甚至以 上,會(huì)明顯感覺(jué)到SQL的CPU開(kāi)銷(xiāo)過(guò)大甚至難以負(fù)荷,過(guò)量的使用這樣的語(yǔ)句,將引起數(shù)據(jù)庫(kù)的大量硬解析與共享池的SQL碎片。所以,在實(shí)際的應(yīng)用過(guò)程 中,我們則可以采用list的方式將這些in字段綁定起來(lái)。接下來(lái)具體描述如何創(chuàng)建in與list綁定,以及如何去使用它們。

a. 創(chuàng)建數(shù)據(jù)類(lèi)型

數(shù)值列表數(shù)據(jù)類(lèi)型

字符串列表數(shù)據(jù)類(lèi)型

b. 創(chuàng)建相關(guān)函數(shù)

數(shù)值列表函數(shù)

字符串列表函數(shù)

c. 查詢(xún)

通過(guò)數(shù)值列表函數(shù)查詢(xún)

通過(guò)字符串列表函數(shù)查詢(xún)

2. 關(guān)于Hint的使用:

在做分布式數(shù)據(jù)系統(tǒng)測(cè)試的時(shí)候,發(fā)現(xiàn)它們有一個(gè)非常關(guān)鍵的技術(shù)點(diǎn)是生成sql的執(zhí)行計(jì)劃。而Hint就是這樣的一種機(jī)制,用來(lái)告訴優(yōu)化器按照我們的 告訴它的方式生成執(zhí)行計(jì)劃。Hint可以基于表連接的順序、表連接的方法、訪(fǎng)問(wèn)路徑、并行度等規(guī)則對(duì)dml語(yǔ)句、或者查查詢(xún)語(yǔ)句產(chǎn)生作用,通過(guò)它我們可以 實(shí)現(xiàn):

1) 使用的優(yōu)化器的類(lèi)型

2) 基于代價(jià)的優(yōu)化器的優(yōu)化目標(biāo),是all_rows還是first_rows。

3) 表的訪(fǎng)問(wèn)路徑,是全表掃描,還是索引掃描,還是直接利用rowid。

4) 表之間的連接類(lèi)型

5) 表之間的連接順序

6) 語(yǔ)句的并行程度

a. Hint語(yǔ)法:

/* */常寫(xiě)代碼但較少接觸Hint的同學(xué)們可千萬(wàn)別誤認(rèn)為這只是代碼的簡(jiǎn)單注釋。

舉幾個(gè)簡(jiǎn)單的應(yīng)用例子:

i. 盡快地顯示前5行記錄

ii. 再比如說(shuō)大數(shù)據(jù)量、分庫(kù)分表查詢(xún)中比較常用到的并行查詢(xún)操作

試驗(yàn)的時(shí)候雖然數(shù)據(jù)量不大,但是效果倒是還挺明顯的,速度之間比對(duì)接近于1:2。像淘寶這種大數(shù)據(jù)量應(yīng)用,每張數(shù)據(jù)表都有過(guò)千萬(wàn)甚至過(guò)億數(shù)據(jù)的時(shí) 候,使用parallel Hint效果會(huì)非常明顯,當(dāng)然數(shù)據(jù)庫(kù)主機(jī)的CPU的核數(shù)越多,系統(tǒng)當(dāng)前負(fù)載越低的時(shí)候,parallel Hint的優(yōu)勢(shì)將會(huì)越加明顯。

關(guān)于Hint的使用,要盡可的自身去體會(huì)才能真正理解其作用,在遇到使用Hint的地方大家可以多關(guān)注一下,有時(shí)間也可以自己做一些調(diào)查驗(yàn)證。

【編輯推薦】

  1. Oracle修補(bǔ)Java中存在十年的bug
  2. Oracle承諾對(duì)MySQL不會(huì)放棄只會(huì)更好
  3.  MySQL十大優(yōu)化技巧
  4. MySQL數(shù)據(jù)庫(kù)的無(wú)縫遷移
責(zé)任編輯:迎迎 來(lái)源: qa.taobao.com
相關(guān)推薦

2010-05-06 17:30:56

Oracle查詢(xún)語(yǔ)句

2011-08-19 09:30:42

分頁(yè)查詢(xún)SQL ServerMySQL

2011-03-15 11:05:03

2010-04-28 17:14:38

Oracle EXPL

2009-12-21 13:34:41

OSGi

2010-04-23 08:56:12

Oracle DRCP

2011-05-19 14:29:49

Oraclerownum

2011-07-27 18:55:02

Oracle數(shù)據(jù)庫(kù)DBLINK操作

2024-10-14 17:24:32

2018-06-08 11:28:44

MySQLlocalhost127.0.0.1

2019-10-28 14:37:10

MySQL 數(shù)據(jù)庫(kù)收藏

2024-11-13 09:16:13

2018-01-19 12:33:17

數(shù)據(jù)庫(kù)OracleMySQL

2011-09-01 10:18:33

初學(xué)OracleOracle常見(jiàn)操作

2010-05-06 10:09:44

Oracle in

2011-03-11 16:42:51

Oracle數(shù)據(jù)庫(kù)視圖

2024-10-10 08:26:30

2010-04-14 13:22:10

Oracle系統(tǒng)函數(shù)

2011-04-12 11:32:31

Oraclerownum用法

2011-07-22 09:33:15

OracleMySQLPostgreSQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)