1、內(nèi)聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別
2、什么是視圖?以及視圖的使用場(chǎng)景有哪些?
視圖是一種虛擬的表,具有和物理表相同的功能
只暴露部分字段給訪問(wèn)者,所以就建一個(gè)虛表,就是視圖。
查詢的數(shù)據(jù)來(lái)源于不同的表,而查詢者希望以統(tǒng)一的方式查詢,這樣也可以建立一
個(gè)視圖,把多個(gè)表查詢結(jié)果聯(lián)合起來(lái),查詢者只需要直接從視圖中獲取數(shù)據(jù),不必
考慮數(shù)據(jù)來(lái)源于不同表所帶來(lái)的差異
3、視圖作用
數(shù)據(jù)庫(kù)視圖隱藏了數(shù)據(jù)的復(fù)雜性。
數(shù)據(jù)庫(kù)視圖有利于控制用戶對(duì)表中某些列的訪問(wèn)。
數(shù)據(jù)庫(kù)視圖使用戶查詢變得簡(jiǎn)單。
4、說(shuō)一下事務(wù)的特性?
原子性(Atomicity):事務(wù)中的全部操作在數(shù)據(jù)庫(kù)中是不可分割的,要么全部完成,
要么均不執(zhí)行。
一致性(Consistency):幾個(gè)并行執(zhí)行的事務(wù),其執(zhí)行結(jié)果必須與按某一順序串行
執(zhí)行的結(jié)果相一致。
隔離性(Isolation):事務(wù)的執(zhí)行不受其他事務(wù)的干擾,事務(wù)執(zhí)行的中間結(jié)果對(duì)其他
事務(wù)必須是透明的。
持久性(Durability):對(duì)于任意已交事務(wù),系統(tǒng)必須保證該事務(wù)對(duì)數(shù)據(jù)庫(kù)的改變不
被丟失,即使數(shù)據(jù)庫(kù)出
5、SQL注入原理
sql 注入漏洞產(chǎn)生的原因最常見(jiàn)的就是字符串拼接SQL 語(yǔ)句,這種漏洞可以利用注
釋語(yǔ)句繞過(guò)驗(yàn)證
如 select name from userinfo where name=‘a(chǎn)lex’ and password = ‘888’
用戶如果在 name 字段輸入 alex’ or 1=1 --f 就可以成功繞過(guò)驗(yàn)證。
要解決這個(gè)問(wèn)題就不能在程序中拼接 sql 語(yǔ)句,例如使用 pymysql 的 execute 方法,
這個(gè)方法會(huì)自動(dòng)對(duì)用戶輸入的引號(hào)特殊字符做轉(zhuǎn)義文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-700788.html
6、簡(jiǎn)單說(shuō)一說(shuō) drop、delete 與 truncate 的區(qū)別
delete 和 truncate 只刪除表的數(shù)據(jù)不刪除表的結(jié)構(gòu)
速度,一般來(lái)說(shuō): drop> truncate >delete
delete 語(yǔ)句是 del,這個(gè)操作會(huì)放到rollback segement 中,事務(wù)提交之后才生效;
如果有相應(yīng)的 trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā)。
truncate,drop 是 ddl, 操作立即生效,原數(shù)據(jù)不放到 rollback segment 中,不能回滾. 操
作不觸發(fā) trigger。
使用場(chǎng)景:
不再需要一張表的時(shí)候,用 drop
想刪除部分?jǐn)?shù)據(jù)行時(shí)候,用 delete,并且?guī)?where 子句
保留表而刪除所有數(shù)據(jù)的時(shí)候用 truncate文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-700788.html
7、數(shù)據(jù)庫(kù)怎么優(yōu)化查詢效率?
- 在where、join on、orderby使用到的字段上加上索引,防止查詢時(shí)判斷null,可能會(huì)導(dǎo)致全表掃描
- 避免使用or來(lái)連接查詢條件,可能導(dǎo)致全表掃描,可以用union或者union all
- 避免使用like查詢,否則會(huì)全表查詢
- 不使用select *,只查詢必須的字段
- 能用 UNION ALL 的時(shí)候就不用 UNION,UNION 過(guò)濾重復(fù)數(shù)據(jù)要耗費(fèi)更多的 cpu資源
- 避免 Update 全部字段,否則頻繁調(diào)用會(huì)引起明顯的性能消耗,同時(shí)帶來(lái)大量日志
總結(jié):
1)避免模糊查詢,or ,like
2)在常用字段加索引,例如 WHERE、JOIN ON 和 ORDER BY 使用到字段上應(yīng)該加索引
3)盡量避免全局性的讀寫(xiě)操作,例如 SELECT * 、Update 全部字段
到了這里,關(guān)于MySQL數(shù)據(jù)庫(kù)相關(guān)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!