今天,我想談談mysql 5中引入的一項新功能:檢視。
檢視就像查詢快照。 您可以將任何查詢儲存為檢視,甚至可以將帶有聯接和子查詢的複雜查詢儲存為檢視,並且mysql會將查詢結果儲存為一種可以像表一樣搜尋(在某些情況下可以修改)的格式。 但是與表不同,您不必擔心更新檢視中的資料。 mysql為您處理所有細節!
出於示例目的,讓我們假設您為wally的widget works構建了乙個資料庫。 wally's的好夥伴們決定,他們需要跟蹤他們生產的不同型別的小部件。 為了使分類不同的視窗小部件更加容易,他們決定給每個視窗小部件乙個或多個「標籤」,以描述該視窗小部件的功能或用途的某些方面。
因此,您從乙個看起來像這樣的資料庫開始:
假設我們想找到所有與標籤「 lifesupport」匹配的小部件。
select `data_widgets`.* from (`data_tags` left join `map_widgettag` using(`tagid`) left join `data_widgets` using(`widgetid`)) where `data_tags`.`desc` = 'lifesupport' order by `desc` asc;
哦,在頁面的更下方,我們想要獲取小部件#15806的所有標籤:select `data_tags`.* from (`data_widgets` left join `map_widgettag` using(`widgetid`) left join `data_tags` using(`tagid`)) where `data_widgets`.`widgetid` = '15806' order by `desc` asc;
(好吧,您知道了;有很多查詢,而且它們都非常相似)
現在,我們假設boss出現了,並說:「嘿,這看起來確實不錯,但是我們不必擔心0-999小部件。這些小部件屬於會計部門,並且具有自己的系統。」
因此,您可以將* and * widgetid`> 999新增到*每個* *單個* *乙個***您的**查詢*。
而且您還錯過了乙個,這在下個月的公司野餐中造成了很多尷尬。
必須有乙個更好的方法。
還有! 輸入檢視。
create view `view_widgettags` as select `data_widgets`.`widgetid`, `data_widgets`.`desc` as `widgetdesc`, `data_tags`.`tagid`, `data_tags`.`desc` as `tagdesc` from (`data_widgets` left join `map_widgettag` using(`widgetid`) left join `data_tags` using(`tagid`)) where `data_widgets`.`widgetid` > 999;
回到我們的示例中,找到所有「生命支援」小部件:select `widgetid`, `widgetdesc` from `view_widgettags` where `tagdesc` = 'lifesupport' order by `widgetdesc` asc;
並找到小部件#15806的所有標籤:select `tagid`, `tagdesc` from `view_widgettags` where `widgetid` = '15806' order by `tagdesc` asc;
順便說一句:select * from `view_widgettags` where `widgetdesc` like 'green%' order by `widgetdesc`, `tagdesc` asc;
請記住,該檢視是混合查詢/表;
您可以像查詢一樣定義它,但可以像表一樣訪問它。
當您從檢視中訪問select資料時,mysql已經編譯了與您用來定義檢視的查詢匹配的資料,因此select查詢的執行速度更快!
當boss停在您的立方體旁邊並說:「嘿,murray從記帳中說,他們正在向我們提供其小部件,因此我們需要再次將它們包括在我們的搜尋中。」您微笑著走到終端機上,魔法:
create or replace view `view_widgettags` as select `data_widgets`.`widgetid`, `data_widgets`.`desc` as `widgetdesc`, `data_tags`.`tagid`, `data_tags`.`desc` as `tagdesc` from (`data_widgets` left join `map_widgettag` using(`widgetid`) left join `data_tags` using(`tagid`));
立即,無需更改您的php**(或您擁有什麼)中的單個查詢,*全部*您的查詢將返回之前禁止的小部件!
from:
為什麼他們都用UWA GOT?
uwa got 全稱 game optimization toolkit,是由侑虎科技研發的本地效能測評工具。它既能方便研發團隊在本地直接進行真機測試,也支援在unity editor中搭建本地伺服器來接收和分析效能資料。整個測試過程中,研發團隊能自定義測試時間和流程,幾分鐘後即可檢視效能資料。目前...
三重緩衝 為什麼我們愛它
我們往往不願過多討論哪些選項在遊戲中應該開啟。相反,我們往往把重點放在我們的評測內容上。老實說,我們對玩遊戲的建議設定與我們的評測設定非常相似,除了乙個非常重要的選項 三重緩衝 這同時意味著開啟垂直同步v sync 雖然這不是乙個所有的遊戲都有的選項 但它真的很必要要。我們現在來說為什麼要開啟三重緩...
為什麼他們選擇了GaussDB
資料庫和數倉是承載金融等企業核心交易業務與資料處理的基石。華為雲stack為政企客戶提供基於opengauss開放生態的企業級分布式資料庫gaussdb for opengauss 具備企業級複雜事務混合負載能力,支援分布式事務 同城跨az及兩地三中心部署。資料0丟失,1000 擴充套件能力,pb級...