MySQL事務(wù)視圖索引備份和恢復(fù)概念介紹
一、事務(wù)
事務(wù)(TRANSACTION)是一種機(jī)制、一個(gè)操作序列,包含了一組數(shù)據(jù)庫(kù)操作命令,并且把所有的命令作為一個(gè)整體一起向系統(tǒng)提交或撤銷操作請(qǐng)求,即這一組數(shù)據(jù)庫(kù)操作命令要么都執(zhí)行,要么都不執(zhí)行。
事務(wù)是一個(gè)不可分割的工作邏輯單元 。
二、事務(wù)的特性
事務(wù)必須具備以下四個(gè)屬性,簡(jiǎn)稱ACID 屬性
原子性(Atomicity)
事務(wù)的各步操作是不可分的(原子的),要么都執(zhí)行,要么都不執(zhí)行
一致性(Consistency)
當(dāng)事務(wù)完成時(shí),數(shù)據(jù)必須處于一致?tīng)顟B(tài)
隔離性(Isolation)
并發(fā)事務(wù)之間彼此隔離、獨(dú)立,它不應(yīng)以任何方式依賴于或影響其他事務(wù)
持久性(Durability)
事務(wù)完成后,它對(duì)數(shù)據(jù)庫(kù)的修改被永久保持
三、MySQL事務(wù)處理
MySQL中支持事務(wù)的存儲(chǔ)引擎有InnoDB和BDB。
方法1:用 BEGIN, COMMIT,ROLLBACK來(lái)實(shí)現(xiàn)。
- BEGIN ; #開(kāi)始事務(wù),顯式地標(biāo)記一個(gè)事務(wù)的起始點(diǎn)
- COMMIT ; #提交事務(wù),標(biāo)志一個(gè)事務(wù)成功提交。
- ROLLBACK; #回滾事務(wù),清除自事務(wù)起始點(diǎn)至該語(yǔ)句所做的所有數(shù)據(jù)更新,將數(shù)據(jù)狀態(tài)回滾到事務(wù)開(kāi)始前,并釋放由事務(wù)控制的資源。
方法2:直接用 SET 來(lái)改變 MySQL 的自動(dòng)提交模式。
默認(rèn)情況下,每條單獨(dú)的SQL語(yǔ)句視為一個(gè)事務(wù) 關(guān)閉默認(rèn)提交狀態(tài)后,可手動(dòng)開(kāi)啟、關(guān)閉事務(wù)
- SET autocommit = 0|1;
- 值為0:關(guān)閉自動(dòng)提交
- 值為1:開(kāi)啟自動(dòng)提交
四、視圖
視圖是一張?zhí)摂M表,表示一張表的部分?jǐn)?shù)據(jù)或多張表的綜合數(shù)據(jù)。
其結(jié)構(gòu)和數(shù)據(jù)是建立在對(duì)表的查詢基礎(chǔ)上
視圖中不存放數(shù)據(jù),數(shù)據(jù)存放在視圖所引用的原始表中
一個(gè)原始表,根據(jù)不同用戶的不同需求,可以創(chuàng)建不同的視圖。
視圖的用途:
篩選表中的行
防止未經(jīng)許可的用戶訪問(wèn)敏感數(shù)據(jù)
將多個(gè)物理數(shù)據(jù)庫(kù)表抽象為一個(gè)邏輯數(shù)據(jù)庫(kù)表
五、管理視圖
1、使用SQL語(yǔ)句創(chuàng)建視圖
CREATE VIEW view_name AS <SELECT 語(yǔ)句>;
2、使用SQL語(yǔ)句查看視圖
SELECT 字段1, 字段2, …… FROM view_name;
3、使用SQL語(yǔ)句刪除視圖
DROP VIEW [IF EXISTS] view_name;
使用視圖的注意事項(xiàng):
- 視圖中可以使用多個(gè)表
- 一個(gè)視圖可以嵌套另一個(gè)視圖
- 對(duì)視圖數(shù)據(jù)進(jìn)行添加、更新和刪除操作直接影響所引用表中的數(shù)據(jù)
- 當(dāng)視圖數(shù)據(jù)來(lái)自多個(gè)表時(shí),不允許添加和刪除數(shù)據(jù)
使用視圖修改數(shù)據(jù)會(huì)有許多限制,一般在實(shí)際開(kāi)發(fā)中視圖僅用作查詢
六、索引

索引是一種有效組合數(shù)據(jù)的方式,為快速查找到指定記錄。
作用:
大大提高數(shù)據(jù)庫(kù)的檢索速度
改善數(shù)據(jù)庫(kù)性能
MySQL索引按存儲(chǔ)類型分類:
B-樹(shù)索引:InnoDB、MyISAM均支持
哈希索引
七、常見(jiàn)索引類型

八、管理索引
使用SQL語(yǔ)句創(chuàng)建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_name (column_name[length]…);
使用SQL語(yǔ)句刪除視圖
DROP INDEX index_name ON table_name;
九,創(chuàng)建索引的指導(dǎo)原則
按照下列標(biāo)準(zhǔn)選擇建立索引的列:
頻繁搜索的列
經(jīng)常用作查詢選擇的列
經(jīng)常排序、分組的列
經(jīng)常用作連接的列(主鍵/外鍵)
請(qǐng)不要使用下面的列創(chuàng)建索引:
僅包含幾個(gè)不同值的列
表中僅包含幾行
十,優(yōu)化SQL語(yǔ)句的意識(shí)
- 查詢時(shí)減少使用*返回全部列,不要返回不需要的列;
- 索引應(yīng)該盡量小,在字節(jié)數(shù)小的列上建立索引;
- WHERE子句中有多個(gè)條件表達(dá)式時(shí),包含索引列的表達(dá)式應(yīng)置于其他條件表達(dá)式之前;
- 避免在ORDER BY子句中使用表達(dá)式。
- 根據(jù)業(yè)務(wù)數(shù)據(jù)發(fā)生頻率,定期重新生成或重新組織索引,進(jìn)行碎片整理。
到此這篇關(guān)于MySQL事務(wù)視圖索引備份和恢復(fù)概念介紹的文章就介紹到這了,更多相關(guān)MySQL事務(wù)管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡(jiǎn)單談?wù)凪ySQL數(shù)據(jù)透視表
這篇文章主要介紹了簡(jiǎn)單談?wù)凪ySQL數(shù)據(jù)透視表的相關(guān)資料,需要的朋友可以參考下2019-08-08
PHP學(xué)習(xí)散記 2012_01_07(MySQL)
數(shù)據(jù)庫(kù)是Web大多數(shù)應(yīng)用開(kāi)發(fā)的基礎(chǔ)。如果你是用PHP,那么大多數(shù)據(jù)庫(kù)用的是MYSQL也是LAMP架構(gòu)的重要部分2012-01-01
Mysql 5.7.20壓縮版下載和安裝簡(jiǎn)易教程
這篇文章主要介紹了Mysql 5.7.20壓縮版下載和安裝簡(jiǎn)易教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
MySQL中的insert set 和 insert values用法
這篇文章主要介紹了MySQL中的insert set 和 insert values用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
MySQL 日期時(shí)間格式化函數(shù) DATE_FORMAT() 的使用示例詳解
`DATE_FORMAT()`是MySQL中用于格式化日期時(shí)間的函數(shù),本文詳細(xì)介紹了其語(yǔ)法、格式化字符串的含義以及常見(jiàn)日期時(shí)間格式組合,感興趣的朋友一起看看吧2025-03-03

