数据库-Mysql
數(shù)據(jù)庫三范式
第一范式:表中每個字段都不能再分。
第二范式:滿足第一范式并且表中的非主鍵字段都依賴于主鍵字段。
第三范式:滿足第二范式并且表中的非主鍵字段必須不傳遞依賴于主鍵字段。
數(shù)據(jù)庫事務(wù)
幾個SQL語句,要么全部執(zhí)行成功,要么全部執(zhí)行失敗。比如銀行轉(zhuǎn)賬就是事務(wù)的典型場景。
特性:原子性,一致性,隔離性,持久性。
事務(wù)三個常用命令:Begin Transaction、Commit Transaction、RollBack Transaction。
數(shù)據(jù)庫索引
索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。
索引分類:
主鍵索引(PRIMAY KEY) ALTER TABLE 'table_name' ADD PRIMARY KEY pk_index('col');
唯一索引(UNIQUE) ?ALTER TABLE 'table_name' ADD UNIQUE index_name('col');
常規(guī)索引(INDEX) ?ALTER TABLE 'table_name' ADD INDEX index_name('col');
全文索引(FULLTEXT) ?ALTER TABLE 'table_name' ADD FULLTEXT INDEX ft_index('col');
組合索引 ?ALTER TABLE 'table_name' ADD INDEX index_name('col1','col2','col3');
?Mysql存儲引擎
Mysql的存儲過程
Mysql5.0以前并不支持存儲過程,5.0以后開始支持存儲過程,大大提高了數(shù)據(jù)庫的處理速度,同時也可以提高數(shù)據(jù)庫編程的靈活性。
CREATE PROCEDURE??過程名([[IN|OUT|INOUT] 參數(shù)名 數(shù)據(jù)類型[,[IN|OUT|INOUT] 參數(shù)名 數(shù)據(jù)類型…]]) [特性 ...] 過程體
DELIMITER //CREATE PROCEDURE myproc(OUT s int)BEGINSELECT COUNT(*) INTO s FROM students;END// DELIMITER ;分隔符
MySQL默認(rèn)以";"為分隔符,如果沒有聲明分割符,則編譯器會把存儲過程當(dāng)成SQL語句進(jìn)行處理,因此編譯過程會報錯,所以要事先用“DELIMITER //”聲明當(dāng)前段分隔符,讓編譯器把兩個"//"之間的內(nèi)容當(dāng)做存儲過程的代碼,不會執(zhí)行這些代碼;“DELIMITER ;”的意為把分隔符還原。
參數(shù)
存儲過程根據(jù)需要可能會有輸入、輸出、輸入輸出參數(shù),如果有多個參數(shù)用","分割開。MySQL存儲過程的參數(shù)用在存儲過程的定義,共有三種參數(shù)類型,IN,OUT,INOUT:
IN參數(shù)的值必須在調(diào)用存儲過程時指定,在存儲過程中修改該參數(shù)的值不能被返回,為默認(rèn)值OUT:該值可在存儲過程內(nèi)部被改變,并可返回INOUT:調(diào)用時指定,并且可被改變和返回
過程體
過程體的開始與結(jié)束使用BEGIN與END進(jìn)行標(biāo)識。
?
Mysql主從復(fù)制原理
1.主庫所有的寫操作記錄在二進(jìn)制日志文件中,生成日志dump線程
2.將二進(jìn)制日志文件傳給從庫的IO線程
3.從庫生成兩個線程,一個是IO線程,一個是SQL線程
4.IO線程去讀取主庫的二進(jìn)制文件,并將二進(jìn)制文件的內(nèi)容寫入到中繼日志中
5.SQL線程讀取中繼日志文件的內(nèi)容并解析成具體的操作,實(shí)現(xiàn)主從的操作一致性,達(dá)到最終數(shù)據(jù)一致性。
?
MyCat實(shí)現(xiàn)讀寫分離
MyCat的原理中最重要的一個動詞就是“攔截”,它攔截了用戶發(fā)送過來的sql語句,進(jìn)行分析sql語句。比如分片分析,路由分析,讀寫分離分析,緩存分析等,
然后將sql發(fā)往后端的真實(shí)數(shù)據(jù)庫,并將返回的結(jié)果進(jìn)行適當(dāng)?shù)奶幚?#xff0c;最終返回給用戶。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yikuan-919/p/11182962.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: 山鬼
- 下一篇: 每天一个linux命令:cat