1遭顶,數(shù)據庫設計3范式
? ? ?原子性,數(shù)據庫字段屬性不可以再分割
? ? 完全依賴瘾带,非主鍵屬性必須完全依賴主鍵膏执,不能依賴主鍵的一部分(針對聯(lián)合主鍵來說)
? ? 直接依賴驻售,非主鍵屬性A不能直接依賴非主鍵屬性B,然后B直接依賴主鍵。
2,組合索引第二個是否會生效
組合索引的生效原則是? 從前往后依次使用生效更米,如果中間某個索引沒有使用芋浮,那么斷點前面的索引部分起作用,斷點后面的索引沒有起作用
3壳快,熟悉數(shù)據庫各種查詢操作纸巷,以學生表,課程表眶痰,成績表為例進行各種操作瘤旨。
4,數(shù)據庫事物的四大特性(ACID)
? ? ? ? 原子性(Automicity)
? ? ? ? 一致性(Consistency)
? ? ? ? 隔離性(Isolation)
? ? ? ? 持久性? (Durability)
5,事物的隔離性
? ??????????當多個線程都開啟事務操作數(shù)據庫中的數(shù)據時竖伯,數(shù)據庫系統(tǒng)要能進行隔離操作存哲,以保證各個線程獲取數(shù)據的準確性。
? ? 沒有事物的隔離性七婴,可能出現(xiàn)的情況祟偷;
? ? 臟讀:臟讀是指在一個事務處理過程里讀取了另一個未提交的事務中的數(shù)據。
? ? ?不可重復讀:不可重復讀是指在對于數(shù)據庫中的某個數(shù)據打厘,一個事務范圍內多次查詢卻返回了不同的數(shù)據值修肠,這是由于在查詢間隔,被另一個事務修改并提交了户盯。
? ? ?幻讀:
? ? ? ? ? 幻讀是事務非獨立執(zhí)行時發(fā)生的一種現(xiàn)象嵌施。例如事務T1對一個表中所有的行的某個數(shù)據項做了從“1”修改為“2”的操作,這時事務T2又對這個表中插入了一行數(shù)據項莽鸭,而這個數(shù)據項的數(shù)值還是為“1”并且提交給數(shù)據庫吗伤。而操作事務T1的用戶如果再查看剛剛修改的數(shù)據,會發(fā)現(xiàn)還有一行沒有修改硫眨,其實這行是從事務T2中添加的足淆,就好像產生幻覺一樣,這就是發(fā)生了幻讀礁阁。
MySQL數(shù)據庫為我們提供的四種隔離級別:
∏珊拧① Serializable (串行化):可避免臟讀、不可重復讀氮兵、幻讀的發(fā)生裂逐。
〈跤恪② Repeatable read (可重復讀):可避免臟讀泣栈、不可重復讀的發(fā)生。
③ Read committed (讀已提交):可避免臟讀的發(fā)生南片。
〔籼巍④ Read uncommitted (讀未提交):最低級別,任何情況都無法保證疼进。
sql語句優(yōu)化查詢原則薪缆。
? ? ? ? https://blog.csdn.net/zh521zh/article/details/76273383 ? ??
6、MySQL中myisam與innodb的區(qū)別伞广,至少5點
(1)拣帽、問5點不同;
????1>.InnoDB支持事物嚼锄,而MyISAM不支持事物
????2>.InnoDB支持行級鎖减拭,而MyISAM支持表級鎖
????3>.InnoDB支持MVCC(Multi-Version Concurrency Control), 而MyISAM不支持
????4>.InnoDB支持外鍵,而MyISAM不支持
????5>.InnoDB不支持全文索引区丑,而MyISAM支持拧粪。
(2)、innodb引擎的4大特性
插入緩沖(insert buffer),二次寫(double write),自適應哈希索引(ahi),預讀(read ahead)
(3)沧侥、2者selectcount(*)哪個更快可霎,為什么
myisam更快,因為myisam內部維護了一個計數(shù)器宴杀,可以直接調取癣朗。