AG积分

座機: 029-81773686 熱線: 18966895139
網頁制作、網絡營銷、維護推廣、手機網站制作一站式解決方案
十分感謝六年來與我們攜手共進的朋友們、客戶們!
這些Mysql問題你一定要知道(二)
添加時間:2020-04-24  點擊率:245次

16、 簡述在MySQL數據庫中MyISAM和InnoDB的區別

區別于其他數據庫的最重要的特點就是其插件式的表存儲引擎。切記:存儲引擎是基于表的,而不是數據庫。

InnoDB與MyISAM的區別:

InnoDB存儲引擎: 主要面向OLTP(Online Transaction Processing,在線事務處理)方面的應用,是第一個完整支持ACID事務的存儲引擎(BDB第一個支持事務的存儲引擎,已經停止開發)。

特點:

· 行鎖設計、支持外鍵,支持事務,支持并發,鎖粒度是支持mvcc得行級鎖;


 MyISAM存儲引擎: 是MySQL官方提供的存儲引擎,主要面向OLAP(Online Analytical Processing,在線分析處理)方面的應用。

特點:

不支持事務,鎖粒度是支持并發插入得表級鎖,支持表所和全文索引。操作速度快,不能讀寫操作太頻繁;


17、 解釋MySQL外連接、內連接與自連接的區別

先說什么是交叉連接: 交叉連接又叫笛卡爾積,它是指不使用任何條件,直接將一個表的所有記錄和另一個表中的所有記錄一一匹配。


內連接 則是只有條件的交叉連接,根據某個條件篩選出符合條件的記錄,不符合條件的記錄不會出現在結果集中,即內連接只連接匹配的行。

外連接 其結果集中不僅包含符合連接條件的行,而且還會包括左表、右表或兩個表中的所有數據行,這三種情況依次稱之為左外連接,右外連接,和全外連接。


左外連接,也稱左連接,左表為主表,左表中的所有記錄都會出現在結果集中,對于那些在右表中并沒有匹配的記錄,仍然要顯示,右邊對應的那些字段值以NULL來填充。

右外連接,也稱右連接,右表為主表,右表中的所有記錄都會出現在結果集中。左連接和右連接可以互換,MySQL目前還不支持全外連接。


18、 寫出三種以上MySQL數據庫存儲引擎的名稱(提示:不區分大小寫)

MyISAM、InnoDB、BDB(BerkeleyDB)、Merge、Memory(Heap)、Example、Federated、

Archive、CSV、Blackhole、MaxDB 等等十幾個引擎


19、Myql中的事務回滾機制概述

事務是用戶定義的一個數據庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位,事務回滾是指將該事務已經完成的對數據庫的更新操作撤銷。

要同時修改數據庫中兩個不同表時,如果它們不是一個事務的話,當第一個表修改完,可能第二個表修改過程中出現了異常而沒能修改,此時就只有第二個表依舊是未修改之前的狀態,而第一個表已經被修改完畢。而當你把它們設定為一個事務的時候,當第一個表修改完,第二表修改出現異常而沒能修改,第一個表和第二個表都要回到未修改的狀態,這就是所謂的事務回滾


20. SQL語言包括哪幾部分?每部分都有哪些操作關鍵字?

答:SQL語言包括數據定義(DDL)、數據操縱(DML),數據控制(DCL)和數據查詢(DQL)四個部分。

數據定義:Create Table,Alter Table,Drop Table, Craete/Drop Index等

數據操縱:Select ,insert,update,delete,

數據控制:grant,revoke

數據查詢:select


21. 完整性約束包括哪些?

答:數據完整性(Data Integrity)是指數據的精確(Accuracy)和可靠性(Reliability)。

分為以下四類:

1) 實體完整性:規定表的每一行在表中是惟一的實體。

2) 域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。

3) 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在數據庫中擴散。

4) 用戶定義的完整性:不同的關系數據庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系數據庫的約束條件,它反映某一具體應用必須滿足的語義要求。

與表有關的約束:包括列約束(NOT NULL(非空約束))和表約束(PRIMARY KEY、foreign key、check、UNIQUE) 。


22.  什么是事務?及其特性?

答:事務:是一系列的數據庫操作,是數據庫應用的基本邏輯單位。

事務特性:

(1)原子性:即不可分割性,事務要么全部被執行,要么就全部不被執行。

(2)一致性或可串性。事務的執行使得數據庫從一種正確狀態轉換成另一種正確狀態

(3)隔離性。在事務正確提交之前,不允許把該事務對數據的任何改變提供給任何其他事務,

(4) 持久性。事務正確提交后,其結果將永久保存在數據庫中,即使在事務提交后有了其他故障,事務的處理結果也會得到保存。


或者這樣理解:

事務就是被綁定在一起作為一個邏輯工作單元的SQL語句分組,如果任何一個語句操作失敗那么整個操作就被失敗,以后操作就會回滾到操作前狀態,或者是上有個節點。為了確保要么執行,要么不執行,就可以使用事務。要將有組語句作為事務考慮,就需要通過ACID測試,即原子性,一致性,隔離性和持久性。


23. 什么是鎖?

  答:數據庫是一個多用戶使用的共享資源。當多個用戶并發地存取數據時,在數據庫中就會產生多個事務同時存取同一數據的情況。若對并發操作不加控制就可能會讀取和存儲不正確的數據,破壞數據庫的一致性。


加鎖是實現數據庫并發控制的一個非常重要的技術。當事務在對某個數據對象進行操作前,先向系統發出請求,對其加鎖。加鎖后事務就對該數據對象有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此數據對象進行更新操作。


基本鎖類型:鎖包括行級鎖和表級鎖


24. 什么叫視圖?游標是什么?

答:視圖是一種虛擬的表,具有和物理表相同的功能。可以對視圖進行增,改,查,操作,視圖通常是有一個表或者多個表的行或列的子集。對視圖的修改不影響基本表。它使得我們獲取數據更容易,相比多表查詢。


  游標:是對查詢出來的結果集作為一個單元來有效的處理。游標可以定在該單元中的特定行,從結果集的當前行檢索一行或多行。可以對結果集當前行做修改。一般不使用游標,但是需要逐條處理數據的時候,游標顯得十分重要。


25. 什么是存儲過程?用什么來調用?

答:存儲過程是一個預編譯的SQL語句,優點是允許模塊化的設計,就是說只需創建一次,以后在該程序中就可以調用多次。如果某次操作需要執行多次SQL,使用存儲過程比單純SQL語句執行要快。可以用一個命令對象來調用存儲過程。


26. 索引的作用?和它的優點缺點是什么?

答:索引就一種特殊的查詢表,數據庫的搜索引擎可以利用它加速對數據的檢索。它很類似與現實生活中書的目錄,不需要查詢整本書內容就可以找到想要的數據。索引可以是唯一的,創建索引允許指定單個列或者是多個列。缺點是它減慢了數據錄入的速度,同時也增加了數據庫的尺寸大小。


27. 如何通俗地理解三個范式?  

答:第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解;

第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性;  

第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余。。


范式化設計優缺點:

優點:

可以盡量得減少數據冗余,使得更新快,體積小

缺點:

對于查詢需要多個表進行關聯,減少寫得效率增加讀得效率,更難進行索引優化


反范式化:

優點:可以減少表得關聯,可以更好得進行索引優化

缺點:數據冗余以及數據異常,數據得修改需要更多的成本


28. 什么是基本表?什么是視圖?

答:基本表是本身獨立存在的表,在 SQL 中一個關系就對應一個表。  視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在數據庫中,是一個虛表  


29. 試述視圖的優點?

答:(1) 視圖能夠簡化用戶的操作  (2) 視圖使用戶能以多種角度看待同一數據;(3) 視圖為數據庫提供了一定程度的邏輯獨立性;(4) 視圖能夠對機密數據提供安全保護。

?
版權所有 ? AG积分宏博網絡,并保留所有權利
客服中心

AG积分


展開客服