|
當(dāng)人們提及可重用的查詢的時候,立即映入腦海的往往就是存儲過程了。雖然這些存儲過程是編寫可重用代碼不可分割的一部分,但要記住的是,它們只是很少的一部分而已,而非全部。此外,其它可重用代碼包括視圖、內(nèi)置函數(shù)以及用戶定義的函數(shù)。在本文中,我們將向讀者詳細(xì)介紹如何組合這些元素,以令我們的選擇語句可以更好的適用于各種查詢。
一、關(guān)于視圖
視圖的用途很多,例如簡化復(fù)雜的模式及查詢,或者提供安全性等等。視圖提供安全性的一種途徑是對開發(fā)者隱藏審計字段。視圖還可通過減少列的數(shù)目來提高性能。這個想法是只引用索引字段,而索引字段的搜索速度是非常之快的。實際上,這種想法實現(xiàn)起來很費勁,因為你必須確保不會訪問隱藏列。然而,我們這里主要是利用視圖模擬兩個或更多個表之間的連接,以降低查詢的復(fù)雜性。很多時候,要想將數(shù)據(jù)庫中用戶的概要信息整理成符合第三范式的形式,可能需要多達(dá)六次連接操作,例如:
select *
from Users u
inner join UserPhoneNumbers upn on u.user_id = upn.user_id
inner join UserScreenNames usn on u.user_id = usn.user_id
inner join UserAffiliations ua on u.user_id = ua.user_id
inner join Affiliations a on a.affiliation_id = ua.affiliation_id
inner join UserWorkHistory uwh on u.user_id = uwh.user_id
inner join Affiliations wa on uwh.affiliation_id = wa.affiliation_id
it知識庫:DBA技巧:如何編寫可重用的MySQL查詢,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。