MySQL基礎複習

2022-03-05 09:13:17 字數 2697 閱讀 4371

1nf:每個資料項都是最小單元,不可分割,其實就是確定行列之後只能對應乙個資料。

2nf:每乙個非主屬性完全依賴於候選碼(屬性組的值能唯一的標識乙個元組,但是其子集不可以)。

3nf:每乙個非主屬性既不傳遞依賴於主碼,也不部分依賴於主碼。

bcnf主屬性(候選碼中的某乙個屬性)內部也不能部分或傳遞依賴於碼。

4nf:沒有多值依賴。

事實上完全的正規化化和完全的反正規化化都是實驗室才有的東西,在實際應用中經常混合使用。

powerdesigner最基礎的使用方法入門學習 (乙個好的工具,可以幫助我們更好的學習知識)。

mysql中的資料用各種不同的技術儲存在檔案(或者記憶體)中。這些技術中的每一種技術都使用不同的儲存機制、索引技巧、鎖定水平並且最終提供廣泛的不同的功能和能力。儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方法。

mysql中myisam與

innodb

的區別,面試題:至少五點

(1)原子性:事務中的操作是乙個不可分割的整體單元,要麼全部都做,要麼全部不做。

(2)一致性:事務執行前後資料庫都必須處於一致性狀態。

(3)隔離性:通常來說,乙個事物所做的修改在最終提交之前對其餘事務是不可見的。這裡就涉及到事務的隔離級別的問題了。

(4)永續性:一旦事務提交完成,修改就是永久的,即使伺服器宕機也不會影響到。

我們可以通過設定 autocommit 變數來啟動或則禁用自動提交模式。 設定1表示啟用autocommit,0表示禁用autocommit。

mysql中預設的是採取自動提交模式(autocommit),

事務併發帶來的資料問題

隔離級別(isolation level),是指事務與事務之間的隔離程度

read uncommitted(未提交讀):在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。讀取未提交的資料,也被稱之為髒讀(dirty read)。該級別用的很少。

read committed(提交讀):乙個事務只能看見已經提交事務所做的改變。這種隔離級別也支援不可重複讀(nonrepeatable read),同一事務的其他例項在該例項處理其間可能會有新的commit,所以同一select查詢可能返回不同結果。

repeatable read(可重複讀)mysql的預設事務隔離級別,它確保同一事務的多個例項在併發讀取資料時,會看到同樣的資料行。導致另乙個棘手的問題:幻讀 (phantom read)。innodb和falcon儲存引擎通過多版本併發控制(mvcc)機制解決了該問題。

serializable(可序列化)這是最高的隔離級別,它強制事務都是序列執行的,使之不可能相互衝突,從而解決幻讀問題。換言之,它是在每個讀的資料行上加上共享鎖。在這個級別,可能導致大量的超時現象和鎖競爭。

在mysql中索引是在儲存引擎層實現的,不同的儲存引擎索引的實現方式不同。

常用的有兩類btree和雜湊索引hash、全文索引、空間資料索引rtree

btree索引:支援全值索引、匹配最左字首(搜尋時注意條件的順序,否則不適用索引)、匹配列字首、精確匹配列等。

雜湊索引:只有精確匹配所有列的查詢才有效。只要memory支援雜湊索引(非唯一雜湊索引,相同的索引會以鍊錶的形式儲存在索引中)

空間資料索引(r-tree):無需字首查詢,從所有維度查詢資料。

錯誤日誌:記錄了當 mysqld 啟動和停止時,以及伺服器在執行過程中發生任何嚴重錯誤時的相關資訊。

二進位制檔案:記錄了所有的 ddl(資料定義語言)語句和 dml(資料操縱語言)語句,不包括資料查詢語句。語句以「事件」的形式儲存,它描述了資料的更改過程。(定期刪除日誌是 dba 維護 mysql 資料 庫的乙個重要工作內容。)

查詢日誌:記錄了客戶端的所有語句,格式為純文字格式,可以直接進行讀取。(log 日誌中記錄了所有資料庫的操作,對於訪問頻繁的系統,此日誌對系統效能的影響較 大,建議關閉)。

慢查詢日誌:慢查詢日誌記錄了包含所有執行時間超過引數long_query_time(單位:秒)所設定值的 sql 語句的日誌。(純文字格式)mysql日誌檔案之錯誤日誌和慢查詢日誌詳解

日誌檔案小結:

檢視最簡單的實現方法是把select語句的結果存放到臨時表中,

儲存過程類似於**中的函式,只能處理特定的任務。

儲存過程的優點:

儲存過程的缺點:

資料庫儲存引擎

mysql資料庫鎖定機制

mysql效能優化-慢查詢分析、優化索引和配置

mysql日誌檔案之錯誤日誌和慢查詢日誌詳解

mysql基礎複習 條件查詢

selece 查詢列表 from 表名 where 篩選條件 篩選條件分類1 條件運算子 大於 小於 大於等於 小於等於 2 邏輯表示式 與 或 and 或 或 or 非 或 not 3 模糊查詢 like 指定子句的查詢模式,一般配合萬用字元使用 between num1 and num2 操作符...

mysql複習 mysql複習

建立資料庫 create database test 建立表 use test create table user id int,name varchar 255 time date,age int 插入資料 第一種方式 insert into 表名 values 值1,2,3 例 insert i...

Mysql快速複習(一)基礎

下文資料庫名選用meter,表名選用elec。如圖 1.選擇資料庫 use meter 分析 use語句並不返回任何結果,依賴於使用的客戶機,顯示某種形式的通知。2.顯示資料庫 show databases 顯示資料表 show tablels 3.顯示表列 show columns from el...