日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql平台workb_MySQL 总结

發(fā)布時間:2025/3/19 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql平台workb_MySQL 总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

164、數(shù)據庫的三范式是什么?

第一范式: 強調的是列的原子性,即數(shù)據庫表的每一列都是不可分割的原子數(shù)據項。

第二范式:要求實體的屬性完全依賴于主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分屬性。

第三范式: 任何非主屬性不依賴于其它非主屬性。

165、一張自增表里面有17條數(shù)據,刪除了最后兩條數(shù)據,重啟MySql數(shù)據庫,又插入了一條數(shù)據,此時Id是幾?

表類型如果是MyISAM,那id就是18.

表類型如果是InnoDB,那id就是16

因為InnoDB表只會把自增的最大Id記錄在內存中,所有重啟后導致最大Id丟失。

166、如何獲取當前數(shù)據庫的版本

使用select version()獲取當前MySql數(shù)據庫版本

167、說一下ACID是什么?

Actomicity原子性

Consistency 一致性

Isolation 隔離性

Durability 持久性

168、char和varchar的區(qū)別是什么?

char(n): 固定長度類型,比如char(10),當你輸入“abc”三個字符的時候,它們占用的空間是10個字符,其它7個是空字符。

char的優(yōu)點: 效率高; 缺點:占用空間; 適用場景: 存儲密碼的md5值,固定長度的,適用char非常合適。

varchar(2):可變長度,存儲的值是每個值占用的字節(jié)再加上一個用來記錄其長度的字節(jié)的長度。

所以,從空間上考慮varchar比較合適,從效率上考慮char比較合適,二者使用需要權衡。

169、float和double的區(qū)別是什么?

float最多可以存儲8位的十進制,并在內存中占4個字節(jié)

double最多可以存儲16位十進制,并在內存中占8個字節(jié)。

170、MySql的內連接、左 連接、右連接有什么區(qū)別?

內連接關鍵字: inner join, 左連接: left join, 右連接: right join

內連接時把匹配的關聯(lián)數(shù)據顯示處理;

左連接是左邊的表全部顯示出來。

右連接與左連接正好相反。

171. MySQL索引的實現(xiàn)?

索引是滿足某種特定查找算法的數(shù)據結構,而這些數(shù)據結構以某種方式指向數(shù)據,從而實現(xiàn)高效查找數(shù)據。

具體來說MySQL中的索引,不同的數(shù)據引擎實現(xiàn)有所不同,但是目前主流的數(shù)據庫引擎的索引都是B+樹實現(xiàn)的,B+樹的搜索效率,可以達到二分法的性能,找到數(shù)據區(qū)域之后就能找到了完整的數(shù)據結構,索引索引的性能也更好。

172、怎么驗證MySql的索引是滿足需求的?

使用explain查看SQL是如何執(zhí)行查詢語句的,從而分析你的索引是否滿足需求

explain語法:explain select * from table where type = 1

173、說一下數(shù)據庫的事務隔離?

MySQL的事務隔離是在MySQL.ini配置文件里添加的,在文件的最后添加

transaction-isolation=REPEATABLE-READ

可用的配置有READ-UNCOMMITED,READ-COMMITED,REPEATABLE-READ,SERIALIZABLE

READ-UNCOMMITED: 未提交讀,最低隔離級別、事務未提交前,就可被其它事務讀取。(會出現(xiàn)幻讀,臟讀,不可重復讀)

READ-COMMITED: 提交讀,一個事務提交后才能被其它事務讀取到(會造成幻讀和不可重復讀?)

REPEATABLE-READ: 可重復讀,默認級別,保證多次讀取同一個數(shù)據時,其值都和事務開始的內容一致,禁止讀取到被的事務未提交的數(shù)據。(會造成幻讀?)

SERIALIZABLE: 序列化,代價最高最可靠的隔離級別,該隔離級別能防止臟讀,不可重復讀,幻讀。

臟讀:表示一個事務能讀取另一個事務中未提交的數(shù)據。比如某個事務嘗試插入記錄A,此時事務還未提交,然后另一個事務嘗試讀取到了記錄A。

不可重復讀:是指在一個事務內,多次讀同一數(shù)據。

幻讀:指同一個事務內多次查詢返回的結果集不一樣。比如同一個事務A第一次查詢時候有n條記錄,但是第二次同等條件下查詢到有n+1條記錄,這就好像產生了幻覺。發(fā)生幻讀的原因也是另外一個事務新增或刪除或者修改了第一個事務結果集里面的數(shù)據,同一個記錄的數(shù)據內容被修改了,所有數(shù)據行的記錄就變多了或者變少了。

174、說一下MySQL常用的引擎?

InnoDB引擎:InnoDB引擎提供了對數(shù)據庫的acid事務支持,并且還提供了行級鎖和外鍵的約束,它的數(shù)據的目標就是處理大數(shù)據容量的數(shù)據庫系統(tǒng)。MySQL運行的時候,InnoDB會在內存中建立緩沖池,用于緩沖數(shù)據和索引。但是該引擎是不會支持全文搜索的,同時啟動也比較慢,它是不會保存表的行數(shù)的,所以當進行select cout(*) from table指令的時候,需要進行全表掃描。由于鎖的粒度小,寫操作不會鎖定全表的,索引在并發(fā)度高的場景下使用會提升效率。

MyIASM引擎:MySql的默認引擎,單不提供事務的支持,也不支持行級鎖和外鍵。因此當執(zhí)行插入或更新操作時,即執(zhí)行寫操作需要鎖定這個表,所以會導致效率降低。不過和InnoDB不同的是,MyIASM引擎保存了表的行數(shù),于是當進行elect cout(*) from table指令的時候,可以直接的讀取已經保存的值而不需要進行全表掃描。所以,如果表的讀操作遠遠低于寫操作,并且不需要事務的支持的,可以將MyIASM作為數(shù)據庫引擎的首選。

175、說一下MySQL的行鎖和表鎖?

MyISAM只支持表鎖,InnoDB支持表鎖和行鎖,默認為行鎖。

表級鎖:開銷小,加鎖快,不會出現(xiàn)死鎖。鎖粒度大,發(fā)生鎖沖突的概率高,并發(fā)量最低

行級鎖: 開銷大,加鎖慢,會出現(xiàn)死鎖。鎖粒度小,發(fā)生鎖沖突的概率小,并發(fā)度最高。

176、說一下樂觀鎖和悲觀鎖?

樂觀鎖: 每次去拿數(shù)據的時候都認為別人不會修改,所以不會上鎖,但是在提交更新的時候會判斷一下在此期間別人有沒有去更新這個數(shù)據。

悲觀鎖: 每次去拿數(shù)據的時候都認為別人會修改,所以每次在拿數(shù)據的時候都會上鎖,這樣別人都想拿這個數(shù)據就會阻止,直到這個鎖被釋放。

數(shù)據庫的樂觀鎖需要自己實現(xiàn),在表里添加一個version字段,每次修改成功值會加1,這樣每次修改的時候先對比一下,自己擁有的version和數(shù)據庫現(xiàn)在的version是否一致,如果不一致就不修改,這樣就實現(xiàn)了樂觀鎖。

177、MySQL問題排查有哪些手段?

使用show processlist命令查看當前所有連接信息

使用explain命令查詢SQL語句執(zhí)行計劃

開啟慢查詢日志,查看慢查詢的SQL

178、如何做MySQL的性能優(yōu)化

為搜索字段創(chuàng)建索引

避免使用select *, 列出需要查詢的字段

垂直分割分表

選擇正確的存儲引擎。

總結

以上是生活随笔為你收集整理的mysql平台workb_MySQL 总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。