什么是性能?
- 吞吐與延遲:有些結論是反直覺的,指導我們關注什么。
- 沒有量化就沒有改進:監(jiān)控與度量指標,指導我們怎么去入手。
- 80/20原則:先優(yōu)化性能瓶頸問題,指導我們如何去優(yōu)化。
- 過早的優(yōu)化是萬惡之源:指導我們要選擇優(yōu)化的時機。
- 脫離場景談性能都是耍流氓:指導我們對性能要求要符合實際,在服務器上運行和在筆記本上運行是不一樣的。
在對大多數情況下,我們面對的是一個老的遺留的業(yè)務系統(tǒng)。如果對這個老系統(tǒng)進行優(yōu)化,一般會涉及它的容量,穩(wěn)定性以及可用性。一般情況,優(yōu)先考慮的點就是優(yōu)化數據庫相關的性能。也就是下面我們將談論的內容。
什么是關系型數據庫?
?
數據庫設計范式
- 第一范式:保證屬性(列)的原子性,屬性不可再分;
比如以學生檔案相關屬性舉例,對應的表包含【學號】?!拘彰?、【院系】、【分數】四個屬性,其中【院系】不滿足原子性,它可再拆分為【院】(計算機學院)、和【系】(自動化、計算機技術、軟件工程)這兩個屬性。
- 第二范式:表中不存在與主鍵部分相關的屬性(列);
以學生成績相關屬性舉例,對應的表包含【學號】?!拘彰俊ⅰ菊n名】、【系名】、【系主任】、【分數】。
其中主鍵為學號+課名,對應關系圖如下:
’(主鍵為什么不是學號?注意,這里的主鍵含義是能唯一確定此條記錄的屬性集合,如果只以學號為主鍵,結合表中的數據,不能唯一確定分數這一世為什么表不滿足第二范式的原因).
’
從上面的關系圖中可以看出,姓名,系名以及系主任可以單獨被學號確定,即存在屬性能被主鍵部分確定,因此此表不滿足第二范式,需要對表進行拆分。
’
此時,拆成兩個表,滿足第二范式。
3. 第三范式:屬性不存在傳遞依賴。
意思就是消除表中列不依賴主鍵,而依賴表中非主鍵的情況,即沒有列屬于主鍵不相關的。上圖中以滿足第二范式,但【系主任】不依賴于【學號】,因此不滿足第三范式。
·
·
此外還有第四范式和第三范式,但用的不多。但是,通常情況下,我們會在主表中加入一些冗余,不必滿足這幾種范式,不如在主表中加入從表的一些屬性,當我們在查詢中,只需要的查詢主表就足夠了,減少表的聯合查詢,因此在設計數據庫的時候,加入一些冗余屬性數非常必要的;
常見的數據庫
SQL語言
SQL首先實在操作關系型數據庫時提出的,但越來越多的實踐證明,無論關系型數據庫還是其他類型數據庫SQL,但凡涉及操作數據領域時,SQL就是最強大,最靈活的實施標準了。
結構化查詢語言的六個部分
1. DQL:數據查詢語言,用于檢索的語言,select 搭配 where、order by、group等等。
2. DML:數據操作語言,用于添加、刪除、修改的語言,像insert、update。delete。
3. DDL:數據定義語言,用于的創(chuàng)建、刪除、修改表結構的語言,像create、drop、alter。
4. TCL:事務控制語言,像commit,rollback等。
5. DCL:數據控制語言,控制用戶權限相關語言。
6. CCL:指針控制語言。
版本
常用的版本為SQL-92和SQL-99,常見的SQL解析器一般表明支持這兩種。
MySQL數據庫
故事
MySQL有 MySQL AB公司于1995年創(chuàng)立,2008年被Sun公司收購,2009年Sun被Oracle收購。由于擔心Oracle對MySQL收費,因此,MySQL AB創(chuàng)始人有開辟一個分支繼續(xù)對MySQL進行維護,名為MariaDB,因此目前存在兩個版本MariaDB和Oracle公司維護的MySQL;文章來源:http://www.zghlxwxcb.cn/news/detail-789843.html
歷史版本
- 4.0版本——支持InnoDB,事務;
- 5.0版本——2003年;
- 5.6版本——歷史使用最多的版本;
- 5.7版本——使用最多的版本;
- 8.0版本——最新,功能最完善,改動最多,因此此版本沒有被命名為5.8,而是直接命名為8.0版本;
5.6/5.7差異
5.7支持:文章來源地址http://www.zghlxwxcb.cn/news/detail-789843.html
- 多主
- MGR高可用
- 分區(qū)表
- json
- 性能
- 修復XA等
5.7/8.0差異
- 8.0支持:
- 通用表達式
- 窗口函數
- 持久化函數
- 自增列持久化
- 默認編碼utf8mb4
- DDL原子性
- JSON增強
- 不在對group by進行隱藏排序
到了這里,關于MySQL——性能優(yōu)化與關系型數據庫的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!