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
主站蜘蛛池模板: 国产成人免费高清AⅤ| 精品伊人久久久久7777人| 福利在线不卡一区| 午夜精品区| 午夜日b视频| 精品国产三级在线观看| 日韩人妻无码制服丝袜视频| 久久黄色一级视频| 中日无码在线观看| 97在线国产视频| 色婷婷在线影院| 色妞www精品视频一级下载| 欧美a√在线| 日本不卡视频在线| 国产一区二区色淫影院| 国产亚洲精品无码专| 国产精品林美惠子在线播放| 日本不卡视频在线| 国产欧美日韩另类| 欧美h在线观看| 亚洲美女一区| 欧美区国产区| 丰满人妻久久中文字幕| 一级毛片视频免费| 国产在线一区视频| 中文字幕亚洲第一| a亚洲视频| 狠狠综合久久| 国产不卡网| 无码在线激情片| 日韩成人在线一区二区| 久久精品视频一| 青青草综合网| 伊人久久综在合线亚洲2019| 欧美午夜网站| 伊人激情综合网| 国产网站免费| 欧美成人午夜视频免看| 97久久精品人人| 国产美女一级毛片| 天天激情综合| 欧美在线视频a| 无码AV动漫| 日韩一级二级三级| 九九香蕉视频| 国产嫩草在线观看| 国产精品天干天干在线观看| 欧美在线一级片| 欧美色香蕉| 欧美有码在线观看| 亚洲妓女综合网995久久| 国产在线精品香蕉麻豆| a级毛片免费看| 中文字幕有乳无码| 伊人久久青草青青综合| 国产成人精品一区二区免费看京| 这里只有精品在线播放| 亚洲人成网站观看在线观看| 日本国产精品一区久久久| 无码国产偷倩在线播放老年人| 国产美女叼嘿视频免费看| 精品无码人妻一区二区| 一区二区理伦视频| 99久久国产自偷自偷免费一区| 日韩精品毛片人妻AV不卡| 国产va在线观看免费| 免费看a级毛片| 992tv国产人成在线观看| 69国产精品视频免费| 亚洲成人手机在线| 91精品久久久久久无码人妻| 日本福利视频网站| 欧美曰批视频免费播放免费| P尤物久久99国产综合精品| 国产精品极品美女自在线网站| 亚洲熟女中文字幕男人总站| 免费A级毛片无码免费视频| 秋霞国产在线| 欧美三级视频在线播放| 亚洲一区二区成人| 国产中文一区二区苍井空| 亚洲日韩欧美在线观看|