SQL語言(內(nèi)外連接悬襟,子查詢爽待,分組,聚集帐偎,嵌套,邏輯)
https://www.cnblogs.com/zhangpengnike/p/5545715.html
MySQL索引方法蛔屹?
https://www.cnblogs.com/whgk/p/6179612.html
索引的優(yōu)化削樊?
https://baijiahao.baidu.com/sid=1594078288126052112&wfr=spider&for=pc
InnoDB與MyISAM區(qū)別?
https://blog.csdn.net/frycn/article/details/70158313
事務(wù)的ACID事務(wù)的四個(gè)隔離級別查詢優(yōu)化(從索引上優(yōu)化,從SQL語言上優(yōu)化)
1.read-uncommitted(讀取沒提交內(nèi)容)臟讀所有事務(wù)都可以看到其他未提交事務(wù)的執(zhí)行結(jié)果漫贞,首先開啟A,B事務(wù)甸箱,B事務(wù)執(zhí)行了更新操作但未提交,A事務(wù)讀取了更新后數(shù)據(jù)迅脐,B回滾芍殖,A事務(wù)出現(xiàn)了臟讀。
2.read-committed(讀取提交內(nèi)容)谴蔑,一個(gè)事務(wù)從開始到提交前所做的任何改變都是不可見的豌骏。首先開啟AB兩個(gè)事務(wù),在B事務(wù)更新并提交后隐锭,A事務(wù)讀取了更新后的數(shù)據(jù)窃躲。此時(shí)處于同一A事務(wù)中查詢出現(xiàn)了不同的查詢結(jié)果,即不可重復(fù)讀現(xiàn)象钦睡。
3.repeatable-read(可重讀)mysql默認(rèn)事務(wù)隔離級別蒂窒,能確保同一事務(wù)的多個(gè)實(shí)例在并發(fā)讀取數(shù)據(jù)時(shí),會看到同樣的結(jié)果荞怒。理論上會導(dǎo)致另一個(gè)問題:幻讀洒琢。例如第一個(gè)事務(wù)對一個(gè)表中的數(shù)據(jù)進(jìn)行了修改,這種修改涉及了表中的全部數(shù)據(jù)行褐桌,同時(shí)第二個(gè)事務(wù)也修改了這個(gè)表中的數(shù)據(jù)衰抑,這種修改是向表中添加一條數(shù)據(jù)。那么就會發(fā)生第一個(gè)事務(wù)的用戶發(fā)現(xiàn)表中還有沒有修改的數(shù)據(jù)撩嚼,InnoDB和Falcon儲存引擎通過多版本并發(fā)控制解決了該問題:InnoDB通過為每個(gè)數(shù)據(jù)行添加兩個(gè)隱含值的方式來實(shí)現(xiàn)停士。這兩個(gè)隱含值記錄了行的創(chuàng)建時(shí)間,以及過期時(shí)間完丽。每一行儲存事件發(fā)生時(shí)的系統(tǒng)版本號恋技,每一次開始一個(gè)新事務(wù)時(shí)版本號+1,每個(gè)查詢根據(jù)事務(wù)的版本號來查詢結(jié)果逻族。
4.serializable(可串行化)這個(gè)是隔離級別最高的蜻底。通過強(qiáng)制事務(wù)排序,使之不可能相互沖突聘鳞,從而解決幻讀問題薄辅,是在每個(gè)讀的數(shù)據(jù)行加上共享鎖實(shí)現(xiàn),在這個(gè)級別抠璃,可能會產(chǎn)生大量的超時(shí)現(xiàn)象和鎖競爭站楚。
B-與B+樹區(qū)別?
http://blog.codinglabs.org/articles/theory-of-mysql-index.html
MySQL的聯(lián)合索引(又稱多列索引)是什么搏嗡?生效的條件窿春?
mysql的兩種存儲引擎的區(qū)別拉一?、
https://www.cnblogs.com/rgever/p/9736374.html
radis相關(guān)知識
https://blog.csdn.net/constraintss/article/details/81459891
radis的數(shù)據(jù)結(jié)構(gòu)
https://www.cnblogs.com/neooelric/p/9621736.html
索引
https://blog.csdn.net/waeceo/article/details/78702584