介紹一下聚簇索引和非聚簇索引
聚簇索引(innobe)的葉子節(jié)點(diǎn)就是數(shù)據(jù)節(jié)點(diǎn) 而非聚簇索引(myisam)的葉子節(jié)點(diǎn)仍然是索引文件 只是這個(gè)索引文件中包含指向?qū)?yīng)數(shù)據(jù)塊的指針
索引失效
where用了响逢!=
使用了函數(shù)
模糊搜索時(shí)使用了非前綴严卖,如“l(fā)ike %abc”
選擇性低
Or條件
ACID
1提陶、原子性(Atomicity):事務(wù)中的全部操作在數(shù)據(jù)庫中是不可分割的韩脑,要么全部完成乘寒,要么均不執(zhí)行梗逮。
2职恳、一致性(Consistency):幾個(gè)并行執(zhí)行的事務(wù)宛渐,其執(zhí)行結(jié)果必須與按某一順序串行執(zhí)行的結(jié)果相一致。事務(wù)必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)仿耽。多個(gè)賬戶錢的總和不變
3合冀、隔離性(Isolation):事務(wù)的執(zhí)行不受其他事務(wù)的干擾,事務(wù)執(zhí)行的中間結(jié)果對(duì)其他事務(wù)必須是透明的项贺。(即事務(wù)隔離級(jí)別)(轉(zhuǎn)錢時(shí)君躺,從其他用戶角度看)
4、持久性(Durability):對(duì)于任意已提交事務(wù)开缎,系統(tǒng)必須保證該事務(wù)對(duì)數(shù)據(jù)庫的改變不被丟失棕叫,即使數(shù)據(jù)庫出現(xiàn)故障。
事務(wù)的隔離級(jí)別
1奕删、臟讀:臟讀是指在一個(gè)事務(wù)處理過程里讀取了另一個(gè)未提交的事務(wù)中的數(shù)據(jù)俺泣。
2、不可重復(fù)讀:不可重復(fù)讀是指在對(duì)于數(shù)據(jù)庫中的某個(gè)數(shù)據(jù),一個(gè)事務(wù)范圍內(nèi)多次查詢卻返回了不同的數(shù)據(jù)值伏钠,這是由于在查詢間隔横漏,被另一個(gè)事務(wù)修改并提交了。
3熟掂、虛讀(幻讀)
在同一個(gè)事務(wù)中缎浇,同一個(gè)查詢多次返回的結(jié)果不一致。事務(wù)A新增了一條記錄赴肚,事務(wù)B在事務(wù)A提交前后各執(zhí)行了一次查詢操作素跺,發(fā)現(xiàn)后一次比前一次多了一條記錄。就好像產(chǎn)生幻覺一樣誉券,這就是發(fā)生了幻讀指厌。
數(shù)據(jù)庫的隔離級(jí)別
1、未提交讀(READ UNCOMMITTED)
事務(wù)中的修改横朋,即使沒有提交仑乌,對(duì)于其他事務(wù)來說也是可見的。也就是說事務(wù)可以讀取未提交的數(shù)據(jù)琴锭,也就是臟讀(Dirty Read).
這是最低的隔離級(jí)別晰甚,實(shí)際的應(yīng)用中一般不用這種隔離級(jí)別。
2决帖、提交讀(READ COMMITTED)
一個(gè)事務(wù)所做的修改在提交前對(duì)于其他事務(wù)是不可見的厕九。所以一個(gè)事務(wù)中兩次執(zhí)行同樣的查詢,有可能會(huì)產(chǎn)生不一樣的結(jié)果地回,
因此這個(gè)隔離級(jí)別也成為不可重復(fù)讀(nonrepeatable read)
3扁远、可重復(fù)讀(REPEATABLE READ)
可重復(fù)讀保證了同一個(gè)事務(wù)中對(duì)同樣記錄的查詢結(jié)果是一致的,所有他不會(huì)產(chǎn)生以上兩種隔離級(jí)別的臟讀和結(jié)果不一致情況刻像。無法解決幻讀畅买。(InnoDB.XtraDB采用MVCC解決幻讀)。
4细睡、可串行化(SERIALIZABLE)
可串行化是最高的隔離級(jí)別谷羞,通過強(qiáng)制事務(wù)串行執(zhí)行來避免前面說的問題。
簡單說溜徙,他會(huì)在讀取的每一行上都加上鎖湃缎,所以會(huì)導(dǎo)致大量的超時(shí) 和鎖爭用問題。
實(shí)際應(yīng)用中很少用到這個(gè)蠢壹,除非需要確保數(shù)據(jù)的一致性并且沒有并發(fā)的情況下才考慮嗓违。
sql相關(guān),sum與count區(qū)別
SUM是對(duì)符合條件的記錄的數(shù)值列求和
COUNT 是對(duì)查詢中符合條件的結(jié)果(或記錄)的個(gè)數(shù)
group by用法图贸,注意事項(xiàng)
數(shù)據(jù)庫死鎖/如何防止
數(shù)據(jù)庫常見死鎖原因及處理 - CSDN博客
sql中join的幾種操作的區(qū)別
union和union all的區(qū)別蹂季,誰的效率更高
Union:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作冕广,不包括重復(fù)行,同時(shí)進(jìn)行默認(rèn)規(guī)則的排序
Union All:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作乏盐,包括重復(fù)行佳窑,不進(jìn)行排序
用distinct和用group by去重
mysql存儲(chǔ)引擎
存儲(chǔ)引擎主要有: 1. MyIsam , 2. InnoDB, 3. Memory, 4. Blackhole, 5. CSV, 6. Performance_Schema, 7. Archive, 8. Federated , 9 Mrg_Myisam
MyISAM和InnoDB的主要區(qū)別和應(yīng)用場景 - CSDN博客
MySQL主從復(fù)制
Mysql主從同步(復(fù)制) - kylinlin - 博客園
explain