国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL視圖 存儲步驟與存儲引擎

2024-07-24 12:35:57
字體:
來源:轉載
供稿:網友
  MySQL視圖、存儲過程與存儲引擎
  一、前言
  ​ 前面的文章已經介紹了MySQL的索引與事務以及MySQL的備份與恢復的相關的內容,本文將對MySQL視圖及存儲過程以及存儲引擎進行講述。
 
  二、MySQL視圖
  2.1問題引出——視圖的概念
  ​ 我們在使用SQL語句進行多表查詢的時候的命令是非常冗長而麻煩的,如果說這樣的操作還非常多的使用的情況下就會加大工作人員的工作量,畢竟不能保證如此長的代碼不會寫錯,并且多次進行如此復雜的查詢也會造成服務器資源占用比變大的問題,那么我們有什么好的辦法解決這樣的問題呢?
 
  2.2為什么要使用視圖——視圖的特點及優缺點
  視圖所占資源較少,就好比是水中月,實際并不存在,但是會根據基表的變化而產生變化。
 
  優點:
 
  ​ 1)簡單:使用視圖的用戶完全不需要關心后面對應的表的結構、關聯條件和篩選條件,對用戶來說已經是過濾好的復合條件的結果集。
 
  ​ 2)安全:使用視圖的用戶只能訪問他們被允許查詢的結果集,對表的權限管理并不能限制到某個行某個列,但是通過視圖就可以簡單的實現。
 
  ​ 3)數據獨立:一旦視圖的結構確定了,可以屏蔽表結構變化對用戶的影響,源表增加列對視圖沒有影響;源表修改列名,則可以通過修改視圖來解決,不會造成對訪問者的影響。
 
  ​ 總而言之,使用視圖的大部分情況是為了保障數據安全性,提高查詢效率。
 
  缺點:
 
  ​ 1)性能差:數據庫必須把視圖查詢轉化成對基本表的查詢,如果這個視圖是由一個復雜的多表查詢所定義,那么,即使是視圖的一個簡單查詢,數據庫也要把它變成一個復雜的結合體,需要花費一定的時間。
 
  ​ 2)修改限制:當用戶試圖修改視圖的某些信息時,數據庫必須把它轉化為對基本表的某些信息的修改,對于簡單的視圖來說,這是很方便的,但是,對于比較復雜的試圖,可能是不可修改的。
 
  2.3簡述視圖算法
  ​ 對于視圖的算法,簡單介紹一下,我們需要在創建視圖的時候指定,基本語法:
  create + [algorithm = temptable/merge/undefined] + view + 視圖名 + as + select語句 with check option;
  視圖算法,即系統對視圖以及外部查詢視圖的select語句的一種解析方式。視圖算法有三種,分別為:
 
  undefined:未定義(默認的),這不是一種實際使用的算法,而是一個“推卸責任”的算法。在未定義的情況下,告訴系統,視圖沒有定義算法,請自己選擇。
  temptable:臨時表算法,系統先執行視圖的select語句,后執行外部查詢語句。
  merge:合并算法,系統先將視圖對應的select語句與外部查詢視圖的select語句進行合并,然后再執行。此算法比較高效,且在未定義算法的時候,經常會默認選擇此算法。
  2.4創建視圖命令
  創建一般視圖命令格式:
 
  create view 視圖名稱 as select +內容
  三、 MySQL存儲引擎
   存儲引擎介紹
  ​ MySQL中的數據用各種不同的技術存儲在文件或者內存中。而這些技術中的每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并最終提供廣泛的不同的功能和能力。
 
  ​ 這些不同的技術以及與之相應的相關功能在MySQL中被稱作為“存儲引擎”。MySQL提供了多個不同的存儲引擎,可以預先設置或者在MySQL服務器中啟用。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖安县| 肇庆市| 徐州市| 和顺县| 临泽县| 天峨县| 大新县| 灵石县| 洪洞县| 汉沽区| 深州市| 扎鲁特旗| 景德镇市| 琼中| 色达县| 余庆县| 顺昌县| 会宁县| 酉阳| 石狮市| 太仆寺旗| 靖宇县| 临泉县| 合江县| 高台县| 清水县| 和田县| 铁力市| 泰安市| 平阳县| 大港区| 永顺县| 泰宁县| 昌平区| 个旧市| 富锦市| 望奎县| 香港 | 杭锦后旗| 灌云县| 安达市|