摘要:不過這里的時間指的是系統版本號死鎖數據庫的解釋現象兩個或兩個以上事務在同一資源相互占用,并請求鎖定對方占用的資源,從而導致惡性循環的現象。并發控制解決問題我在讀數據,你在刪數據的情況鎖分類讀鎖共享鎖,不阻塞寫鎖排他鎖,排除其他寫鎖和讀鎖。
數據庫面試題 DBS DBMS DB區別
DBS 數據庫系統
DBMS 數據庫管理系統
DB 數據庫
數據庫系統dbs包括但不限于數據庫管理系統dbms和數據庫db
MySQL存儲引擎InnoDB(默認):支持事物,表鎖,行鎖設計,支持外鍵
MyISAM:不支持事物和表鎖設計,不支持外鍵
事物使用場景
轉賬:
a轉賬給b,a賬戶減少
b賬戶增加
過程就要用到事物,轉賬事物就回滾
解釋:一組原子性的SQL查詢(結合ACID)
ACID特性
A:原子性
C:一致性
I:隔離性
D:持久性
隔離級別(低到高)
read uncommitted(未提交讀)
read committed(提交讀):大多數數據庫默認的級別
repeatable read (可重復讀):mysql默認級別,解決了臟讀問題,InnoDB通過mvcc可解決幻讀問題
serializable(可串行化):最高的隔離級別,不能并發,解決了幻讀問題,會產生超時 鎖爭用問題
樂觀鎖與悲觀鎖
悲觀鎖
特征(what):每次操作數據都會加鎖
常見例子:mysql中行鎖 表鎖 讀鎖 寫鎖 ;java的中重量級鎖synchronized
樂觀鎖
特征(what):操作數據時不加鎖
實現方法(how):通過版本控制和cas算法實現
優點:適用于多讀的應用類型,可以提高吞吐量
常見例子:java中的原子變量類(cas算法)
MVCC多版本并發控制
是啥(what):
可以認為是行級鎖的變種,他在很多情況下避免加鎖,花銷更低
分類:
樂觀并發控制和悲觀并發控制
實現(mysal的innodb引擎):
通過在每行記錄后面保存兩個隱藏的列來實現,一個是保存行的創建時間,一個是保存行的過期時間。不過這里的時間指的是系統版本號
死鎖(數據庫的)解釋現象:兩個或兩個以上事務在同一資源相互占用,并請求鎖定對方占用的資源,從而導致惡性循環的現象。
并發控制解決問題:我在讀數據,你在刪數據的情況
鎖分類:
讀鎖:共享鎖,不阻塞
寫鎖:排他鎖,排除其他寫鎖和讀鎖。
鎖策略
解決問題:提高性能
分類:
表鎖:開銷最小范式分類
行級鎖:最大程度支持并發,但開銷最大
1nf:屬性具有原子性
2nf:在1nf基礎上消除非主屬性對主碼的部分依賴
3nf:在2nf基礎上消除傳遞依賴
范式與反范式
范式:
優點:
更新比反范式快
修改數據少
表比較小,存在內存中,執行快
缺點:
需要關聯
反范式:
優點:
避免關聯
缺點:
信息冗余Char varchar
Char是定長 剩余空間會用空格填充
Varchar是可變長
MySQL date、datetime和timestamp類型的區別https://zhuanlan.zhihu.com/p/...
索引(書的目錄)解決問題(why):方便查找數據
優點:
大大減少服務器需要掃描的數據量
幫助服務器避免排序和臨時表
將隨機io變成順序io
缺點:
時間:創建索引,維護索引需要時間
空間:創建索引占用物理空間
創建索引的原則
最左前綴匹配原則,具體在聯合索引體現,mysql會一直向右匹配,當遇到范圍查詢會停止,此時把范圍查詢的索引放到最后即可
經常作為查詢的字段作為索引
更新頻繁的字段不適合做索引
定義有外鍵的字段一定要做索引
盡量擴展索引,不要重新新建索引
索引分類
按底層數據結構分:
b數索引(底層是b+數)
哈希索引
空間數據(r-tree)索引
全文索引
按邏輯分類
主鍵索引(特殊的唯一索引,不允許null值)Group by
單列索引
多列索引
唯一索引
空間索引
后面接條件時用having;
一般與cout()函數一起使用,實現查詢重復數據功能
查重:
結果
分頁查詢(limit(mysql) top(sqlserver))練習:
https://www.nowcoder.com/prac...
解釋:limit x, y 表示從x+1行(x從0開始算)開始查詢y條數據
公眾號歡迎關注公眾號 布爾bl ,分享Java相關信息技術、生活感悟。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72950.html
摘要:作為面試官,我是如何甄別應聘者的包裝程度語言和等其他語言的對比分析和主從復制的原理詳解和持久化的原理是什么面試中經常被問到的持久化與恢復實現故障恢復自動化詳解哨兵技術查漏補缺最易錯過的技術要點大掃盲意外宕機不難解決,但你真的懂數據恢復嗎每秒 作為面試官,我是如何甄別應聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復制的原理詳...
摘要:作為面試官,我是如何甄別應聘者的包裝程度語言和等其他語言的對比分析和主從復制的原理詳解和持久化的原理是什么面試中經常被問到的持久化與恢復實現故障恢復自動化詳解哨兵技術查漏補缺最易錯過的技術要點大掃盲意外宕機不難解決,但你真的懂數據恢復嗎每秒 作為面試官,我是如何甄別應聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復制的原理詳...
摘要:好不容易在月號這天中午點左右接到了來自阿里的面試電話。這里會不斷收集和更新基礎相關的面試題,目前已收集題。面試重難點的和的打包過程多線程機制機制系統啟動過程,啟動過程等等掃清面試障礙最新面試經驗分享,此為第一篇,開篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開發面試題總結 各大公司 Jav...
摘要:今天整理了一下近大半年以來的一些文章,和我的預期一樣,很多文章我都忘記自己曾經寫過了,這個記錄的過程讓我也有了新的理解。希望大家,收藏,點贊,加轉發。 今天整理了一下近大半年以來的一些文章,和我的預期一樣,很多文章我都忘記自己曾經寫過了,這個記錄的過程讓我也有了新的理解。希望大家,收藏,點贊,加轉發。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...
閱讀 1228·2021-09-26 09:46
閱讀 1582·2021-09-06 15:00
閱讀 713·2019-08-30 15:52
閱讀 1116·2019-08-29 13:10
閱讀 1277·2019-08-26 13:47
閱讀 1479·2019-08-26 13:35
閱讀 2028·2019-08-23 18:38
閱讀 721·2019-08-23 17:59