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

SQL數(shù)據(jù)庫查詢效率的研究

2016-03-09 00:37:06姚曦
電腦與電信 2016年7期
關鍵詞:數(shù)據(jù)庫優(yōu)化

姚曦

(福建衛(wèi)生職業(yè)技術學院公共基礎部,福建 福州 350101)

SQL數(shù)據(jù)庫查詢效率的研究

姚曦

(福建衛(wèi)生職業(yè)技術學院公共基礎部,福建 福州 350101)

本文介紹了SQL中連接的種類,連接的操作步驟,連接的語法。重點解析了在基于多表連接的查詢中如何提高效率,并通過學生數(shù)據(jù)庫的實例進一步說明。

連接;多表;優(yōu)化查詢

1 概論

數(shù)據(jù)庫性能問題一直是決策者及技術人員共同關注的焦點,影響數(shù)據(jù)庫性能的一個重要因素就是SQL查詢語句的效率。SQL是結(jié)構(gòu)化查詢語言(Structured Query Language)的縮寫,SQL語言的功能包括數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制等部分,主要應用于關系數(shù)據(jù)庫,實現(xiàn)了關系數(shù)據(jù)庫中的數(shù)據(jù)檢索。數(shù)據(jù)庫一般是由多張表來實現(xiàn)存儲,并通過多張表之間的連接關系建立完整有效的數(shù)據(jù)查詢。作為數(shù)據(jù)查詢語言SQL,提供了功能強大的數(shù)據(jù)表連接查詢功能。那么如何將這些表高效地有機地聯(lián)系起來,就成為設計關系數(shù)據(jù)庫的一個重要指標。

2 多表連接的類型

在關系數(shù)據(jù)庫應用中,由于需要經(jīng)常對多個關聯(lián)表進行操作,可以通過同時檢索多個表來獲取所需的數(shù)據(jù)。一般分為三種連接的模式:內(nèi)連接(INNER JOIN),外連接(OUTER JOIN),交叉連接(CROSS JOIN)。語法的連接格式如下:

<連接>::=

{

<表名>[{INNER

|{{LEFT|RIGHT|FULL}[OUTER]}

|CROSS

}]

JOIN<表名>

ON<連接條件>

}

2.1 內(nèi)連接(INNER JOIN)

內(nèi)連接使用比較運算符進行表間某(些)列數(shù)據(jù)的比較操作,并列出與連接條件相匹配的數(shù)據(jù)行。根據(jù)所使用的比較方式的不同,內(nèi)連接又分為等值連接、不等連接和自然連接三種。

等值連接:在連接條件中使用等于號(=)運算符比較被連接列的列值,其查詢結(jié)果中列出被連接表中的所有列,也包括重復列。

不等連接:在連接條件使用除等于運算符以外的其它比較運算符比較被連接列的列值。這些運算符包括>、>=、< =、<、!>、!<和<>。

自然連接:在連接條件中使用等于(=)運算符比較被連接列的列值,但它使用選擇列表指出查詢結(jié)果集合中所包括的列,查詢結(jié)果不包括重復列。

2.2 外連接(OUTER JOIN)

內(nèi)連接返回滿足查詢條件的數(shù)據(jù),不滿足的數(shù)據(jù)不會保留。而外連接則返回查詢條件中一個表或視圖的所有數(shù)據(jù)行。

外連接包括三種模式:左外連接(LEFT OUTER JOIN)、右外連接(RIGHT OUTER JOIN)和全連接(FULL OUTER JOIN)。

左外連接:保留左表中的所有數(shù)據(jù),如果左表與右表的某些數(shù)據(jù)不匹配,則在結(jié)果集中右表不匹配的數(shù)據(jù)列均為空值。

右外連接:同左外連接相反,右外連接保留右表中的所有數(shù)據(jù),如果左表與右表的某些數(shù)據(jù)不匹配,則在結(jié)果集中左表不匹配的數(shù)據(jù)列為空值。

全連接:也稱完整外連接,返回左表與右表中的所有數(shù)

據(jù)行,如果左表與右表達某些數(shù)據(jù)不匹配,則在結(jié)果集中的對應列均為空值。

2.3 交叉連接(CROSS JOIN)

交叉連接不使用WHERE子句,返回涉及表的笛卡兒積。如查詢表1及表2,表1有m行,表2有n行,查詢結(jié)果集有m×n行。

3 多表連接的優(yōu)化查詢

聯(lián)接查詢操作的前提是笛卡兒積,從中找出符合條件的記錄,所以我們在做優(yōu)化時盡量避免聯(lián)接查詢。如果避免不了的聯(lián)接操作要遵循以下2個原則從而達到優(yōu)化時間和空間的目的。

給定三個關系模式:(以下實例均以此為例)

s(sno,sname,sex,birthday,email)

c(cno,cname,creadit)

sc(sno,cno,score)

3.1 選擇最有效率的表名順序(只在基于規(guī)則的優(yōu)化器中有效)

在進行多表連接查詢時,解析器按照從右到左的順序處理FROM子句中的表名,因此FROM子句中寫在最后的表將被優(yōu)先處理。因此在FROM子句中含多個表的情況下,須選擇元組數(shù)最少的表作為基礎表。例如s表有1000條數(shù)據(jù),c表有10條數(shù)據(jù)。語句select*from s,c(選擇c為基礎表)比語句select*from c,s(選擇s為基礎表)更高效。

如果有3個以上的表連接查詢,那就需要選擇交叉表作為基礎表,交叉表是指那個被其他表所引用的表。例如sc表的sno和cno列分別在s表和c表中出現(xiàn),sc表是s表和c表的交叉表。因此SQL語句

SELECT*FROM S,C,SNO

WHERE SC.CNO=C.CNOAND SC.SNO=S.SNO

將比下列語句更高效

SELECT*FROM SNO,S,C

WHERE SC.CNO=C.CNOAND SC.SNO=S.SNO

3.2 注意WHERE子句中的連接順序

SQL采用自下而上的順序解析WHERE子句,根據(jù)這個原理,表之間的連接必須寫在其他WHERE條件之前,那些可以過濾掉最大數(shù)量記錄的條件必須寫在WHERE子句的末尾。如果需要查詢成績?yōu)?0分以上的學生信息。

SQL語句1:SELECT*FROM S,SC WHERE SCORE> 90 AND S.SNO=SC.SNO因為SQL自右向左進行執(zhí)行,因此查詢語句先將兩張表按照學號進行連接,然后篩選出符合條件的記錄,表的連接是基于表的笛卡爾運算,消耗的時間會隨著記錄個數(shù)的增加很快地增長,因此SQL語句1是低效語句。

SQL語句2:SELECT*FROM S,SC WHERE S.SNO= SC.SNOAND SCORE>90此連接查詢語句克服了SQL語句1的缺點,首先篩選出符合條件的記錄,減少了進行聯(lián)接的記錄個數(shù),然后再執(zhí)行連接查詢,大大提高了查詢效率,是高效語句。

4 結(jié)論

本文介紹在數(shù)據(jù)庫的開發(fā)和維護過程中,多表連接查詢的優(yōu)化設計可以提高系統(tǒng)性能,對于數(shù)據(jù)量大的數(shù)據(jù)庫系統(tǒng)更為重要。本文介紹了的幾種優(yōu)化策略,在時間和空間上提高了系統(tǒng)的性能,在一定程度上提高了查詢效率。

[1]李丹.SQL Server2005數(shù)據(jù)庫管理與開發(fā)實用教程[M].北京:機械工業(yè)出版社,2010.

[2]吳潔明,周錦.基于Oracle數(shù)據(jù)庫SQL查詢語句優(yōu)化規(guī)則的研究[J].陜西理工學院學報(自然科學版),2013(4):34-38.

Research on the Query Efficiency of SQL Database

Yao Xi
(Fujian Medical College,Fuzhou 350101,Fujian)

This paper introduces the type of connections,the operation steps of connections,and the connection syntax in SQL. It analyzes how to improve the query efficiency based on the multi-table connection,and further explains with the examples of the student database.

connections;multi-table;optimized query

TP311.13

A

1008-6609(2016)07-0108-02

姚曦,女,福建福州人,本科,講師,研究方向:計算機應用技術。

猜你喜歡
數(shù)據(jù)庫優(yōu)化
超限高層建筑結(jié)構(gòu)設計與優(yōu)化思考
民用建筑防煙排煙設計優(yōu)化探討
關于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 国产美女无遮挡免费视频网站 | 久久成人18免费| 自拍亚洲欧美精品| 亚洲欧美国产高清va在线播放| 久久成人免费| 亚洲区第一页| 中文成人在线| 67194亚洲无码| 婷婷色婷婷| 成人精品免费视频| 女同久久精品国产99国| 欧美天堂在线| 久久综合婷婷| 亚洲人成影院午夜网站| 欧洲熟妇精品视频| 啪啪啪亚洲无码| 精品久久久久久中文字幕女 | 五月天香蕉视频国产亚| 久久99国产综合精品1| 伊人久久大线影院首页| 在线观看免费国产| 亚洲国产理论片在线播放| 老司国产精品视频91| 好紧好深好大乳无码中文字幕| 欧美成人精品高清在线下载| 欧美人人干| 最新精品国偷自产在线| 91久久国产热精品免费| 精品国产一区二区三区在线观看| 大香网伊人久久综合网2020| 午夜久久影院| 久久精品无码一区二区日韩免费| 中日无码在线观看| 中文字幕在线观看日本| 国内a级毛片| 亚洲国产成人综合精品2020| 99视频国产精品| 国产久操视频| 午夜天堂视频| 夜夜爽免费视频| 日韩二区三区无| 91精品国产自产91精品资源| 中文字幕免费视频| 亚洲日韩精品伊甸| 成人福利免费在线观看| 国产精品精品视频| 国产在线第二页| 一区二区偷拍美女撒尿视频| 国产小视频a在线观看| 久久国产精品夜色| 国产大全韩国亚洲一区二区三区| 国产精品免费p区| 国产理论最新国产精品视频| 久久五月天综合| 日韩美女福利视频| 亚洲国产理论片在线播放| 久久精品午夜视频| 内射人妻无码色AV天堂| 亚洲国产欧美国产综合久久| 亚洲AV无码乱码在线观看代蜜桃| 国产成人无码Av在线播放无广告| 91福利在线看| 亚洲精品日产精品乱码不卡| 久久五月视频| 最新国产高清在线| 色135综合网| 毛片在线播放网址| www.youjizz.com久久| 亚洲国产成人久久精品软件| 中文字幕中文字字幕码一二区| 手机看片1024久久精品你懂的| 免费亚洲成人| 精品国产成人av免费| 国产欧美中文字幕| 亚洲三级成人| 久久这里只有精品66| 亚洲高清在线天堂精品| 欧美精品1区2区| 激情国产精品一区| 欧美日韩在线观看一区二区三区| 成人免费网站久久久| 久操中文在线|