MySQL事務(wù)視圖索引備份和恢復(fù)概念介紹
一、事務(wù)
事務(wù)(TRANSACTION)是一種機制、一個操作序列,包含了一組數(shù)據(jù)庫操作命令,并且把所有的命令作為一個整體一起向系統(tǒng)提交或撤銷操作請求,即這一組數(shù)據(jù)庫操作命令要么都執(zhí)行,要么都不執(zhí)行。
事務(wù)是一個不可分割的工作邏輯單元 。
二、事務(wù)的特性
事務(wù)必須具備以下四個屬性,簡稱ACID 屬性
原子性(Atomicity)
事務(wù)的各步操作是不可分的(原子的),要么都執(zhí)行,要么都不執(zhí)行
一致性(Consistency)
當(dāng)事務(wù)完成時,數(shù)據(jù)必須處于一致狀態(tài)
隔離性(Isolation)
并發(fā)事務(wù)之間彼此隔離、獨立,它不應(yīng)以任何方式依賴于或影響其他事務(wù)
持久性(Durability)
事務(wù)完成后,它對數(shù)據(jù)庫的修改被永久保持
三、MySQL事務(wù)處理
MySQL中支持事務(wù)的存儲引擎有InnoDB和BDB。
方法1:用 BEGIN, COMMIT,ROLLBACK來實現(xiàn)。
- BEGIN ; #開始事務(wù),顯式地標(biāo)記一個事務(wù)的起始點
- COMMIT ; #提交事務(wù),標(biāo)志一個事務(wù)成功提交。
- ROLLBACK; #回滾事務(wù),清除自事務(wù)起始點至該語句所做的所有數(shù)據(jù)更新,將數(shù)據(jù)狀態(tài)回滾到事務(wù)開始前,并釋放由事務(wù)控制的資源。
方法2:直接用 SET 來改變 MySQL 的自動提交模式。
默認情況下,每條單獨的SQL語句視為一個事務(wù) 關(guān)閉默認提交狀態(tài)后,可手動開啟、關(guān)閉事務(wù)
- SET autocommit = 0|1;
- 值為0:關(guān)閉自動提交
- 值為1:開啟自動提交
四、視圖
視圖是一張?zhí)摂M表,表示一張表的部分數(shù)據(jù)或多張表的綜合數(shù)據(jù)。
其結(jié)構(gòu)和數(shù)據(jù)是建立在對表的查詢基礎(chǔ)上
視圖中不存放數(shù)據(jù),數(shù)據(jù)存放在視圖所引用的原始表中
一個原始表,根據(jù)不同用戶的不同需求,可以創(chuàng)建不同的視圖。
視圖的用途:
篩選表中的行
防止未經(jīng)許可的用戶訪問敏感數(shù)據(jù)
將多個物理數(shù)據(jù)庫表抽象為一個邏輯數(shù)據(jù)庫表
五、管理視圖
1、使用SQL語句創(chuàng)建視圖
CREATE VIEW view_name AS <SELECT 語句>;
2、使用SQL語句查看視圖
SELECT 字段1, 字段2, …… FROM view_name;
3、使用SQL語句刪除視圖
DROP VIEW [IF EXISTS] view_name;
使用視圖的注意事項:
- 視圖中可以使用多個表
- 一個視圖可以嵌套另一個視圖
- 對視圖數(shù)據(jù)進行添加、更新和刪除操作直接影響所引用表中的數(shù)據(jù)
- 當(dāng)視圖數(shù)據(jù)來自多個表時,不允許添加和刪除數(shù)據(jù)
使用視圖修改數(shù)據(jù)會有許多限制,一般在實際開發(fā)中視圖僅用作查詢
六、索引
索引是一種有效組合數(shù)據(jù)的方式,為快速查找到指定記錄。
作用:
大大提高數(shù)據(jù)庫的檢索速度
改善數(shù)據(jù)庫性能
MySQL索引按存儲類型分類:
B-樹索引:InnoDB、MyISAM均支持
哈希索引
七、常見索引類型
八、管理索引
使用SQL語句創(chuàng)建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_name (column_name[length]…);
使用SQL語句刪除視圖
DROP INDEX index_name ON table_name;
九,創(chuàng)建索引的指導(dǎo)原則
按照下列標(biāo)準(zhǔn)選擇建立索引的列:
頻繁搜索的列
經(jīng)常用作查詢選擇的列
經(jīng)常排序、分組的列
經(jīng)常用作連接的列(主鍵/外鍵)
請不要使用下面的列創(chuàng)建索引:
僅包含幾個不同值的列
表中僅包含幾行
十,優(yōu)化SQL語句的意識
- 查詢時減少使用*返回全部列,不要返回不需要的列;
- 索引應(yīng)該盡量小,在字節(jié)數(shù)小的列上建立索引;
- WHERE子句中有多個條件表達式時,包含索引列的表達式應(yīng)置于其他條件表達式之前;
- 避免在ORDER BY子句中使用表達式。
- 根據(jù)業(yè)務(wù)數(shù)據(jù)發(fā)生頻率,定期重新生成或重新組織索引,進行碎片整理。
到此這篇關(guān)于MySQL事務(wù)視圖索引備份和恢復(fù)概念介紹的文章就介紹到這了,更多相關(guān)MySQL事務(wù)管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL查詢in操作 查詢結(jié)果按in集合順序顯示
MySQL 查詢in操作,查詢結(jié)果按in集合順序顯示的實現(xiàn)代碼,需要的朋友可以參考下。2010-12-12MySQL實現(xiàn)類似于connect_by_isleaf的功能MySQL方法或存儲過程
這篇文章主要介紹了MySQL實現(xiàn)類似于connect_by_isleaf的功能MySQL方法或存儲過程,需要的朋友可以參考下2017-02-02MySQL錯誤:Can‘t?connect?to?MySQL?server?on?localhost解決辦法
這篇文章主要給大家介紹了關(guān)于MySQL錯誤:Can‘t?connect?to?MySQL?server?on?localhost的解決辦法,文中介紹的方法分多種情況,通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05MySQL中g(shù)roup by與max()一起使用的坑
最近在做一個項目,發(fā)現(xiàn)用之前SQL語句導(dǎo)出的余額與客戶人員最近消費記錄所顯示的余額不一致,本文就來了解一下這個錯誤,感興趣的可以了解一下2023-08-08