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-樹索引: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)文章
mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄
這篇文章主要介紹了mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄的相關(guān)資料,需要的朋友可以參考下2015-07-07MySQL查詢in操作 查詢結(jié)果按in集合順序顯示
MySQL 查詢in操作,查詢結(jié)果按in集合順序顯示的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-12-12MySQL實(shí)現(xiàn)類似于connect_by_isleaf的功能MySQL方法或存儲(chǔ)過(guò)程
這篇文章主要介紹了MySQL實(shí)現(xiàn)類似于connect_by_isleaf的功能MySQL方法或存儲(chǔ)過(guò)程,需要的朋友可以參考下2017-02-02MySQL錯(cuò)誤:Can‘t?connect?to?MySQL?server?on?localhost解決辦法
這篇文章主要給大家介紹了關(guān)于MySQL錯(cuò)誤:Can‘t?connect?to?MySQL?server?on?localhost的解決辦法,文中介紹的方法分多種情況,通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05MySQL中g(shù)roup by與max()一起使用的坑
最近在做一個(gè)項(xiàng)目,發(fā)現(xiàn)用之前SQL語(yǔ)句導(dǎo)出的余額與客戶人員最近消費(fèi)記錄所顯示的余額不一致,本文就來(lái)了解一下這個(gè)錯(cuò)誤,感興趣的可以了解一下2023-08-08