亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL索引與事務和視圖以及存儲引擎MylSAM和lnnoDB是怎樣的

發布時間:2021-10-08 15:57:10 來源:億速云 閱讀:173 作者:柒染 欄目:MySQL數據庫

本篇文章給大家分享的是有關MySQL索引與事務,視圖及存儲引擎MylSAM和lnnoDB,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

MySQL索引與事務,視圖,存儲引擎MylSAM和lnnoDB

索引的概念

數據庫中的索引與書籍中的目錄類似:

1.-本書中,無須閱讀整本書,利用目錄就可以快速查找所需信息
2.書中的目錄是一個詞語列表,其中注明了包含各個詞的頁碼

數據庫索引:

1.在數據庫中,索弓|使數據庫程序無須對整個表進行掃描,就可以在其中找到所需數據
2.數據庫中的索弓|是某個表中一-列或者若干列值的集合,以及物理標識這些值的數據頁的邏輯指針清單

索引的作用:

1.設置了合適的索引之后,數據庫利用各種快速的定位技術,能夠大大加快查詢速率
2.特別是當表很大時,或者查詢涉及到多個表時,使用索引可使查詢加快成干倍
3.可以降低數據庫的IO成本,并且索引還可以降低數據庫的排序成本
4.通過創建唯一性索引保證數據表數據的唯一性
5.可以加快表與表之間的連接
6.在使用分組和排序時,可大大減少分組和排序時間

索引的分類

普通索引:

是最基本的索引|類型,而且它沒有唯一-性之類的限制

唯一性索引:

這種索弓|和前面的“普通索引”基本相同,但有一個區別:索引列的所有值都只能出現一次,即必須唯一

主鍵:

主鍵是一種唯一性索引,但它必須指定為”PRIMARY KEY"

全文索引:

MySQL從3.23.23版開始支持全文索引和全文檢索。在MySQL中全文索引的索引類型為FULLTEXT,全文索引可以在VARCHAR或者TEXT類型的列上創建

單列索引與多列索引:

索引可以是單列上創建的索引,也可以是在多列上創建的索引

創建索引的原則依據

1.表的主鍵、外鍵必須有索引
2.數據量超過300行的表應該有索引
3.經常與其他表進行連接的表,在連接字段.上應該建立索引
4.唯一性太差的字段不適合建立索引
5.更新太頻繁地字段不適合創建索引6.經常出現在Where子句中的字段,特別是大表的字段,應該建立索引
7.索引應該建在選擇性高的字段上
8.索引應該建在小字段上,對于大的文本字段甚至超長字段,不要建索引

事務

事務的概念

1.事務是一種機制、一個操作序列,包含了一組數據庫操作命令,并且把所有的命令作為- -個整體-起向系統提交或撤銷操作請求,即這一組數據庫命令要么都執行,要么都不執行
2.事務是一個不可分割的工作邏輯單元,在數據庫系統上執行并發操作時,事務是最小的控制單元
3.適用于多用戶同時操作的數據庫系統的場景,如銀行、保險公司及證券交易系統等等
4.通過事務的整體性以保證數據的一致性

事務的ACID特點
原子性(Atomicity):

1.事務是一個完整的操作,事務的各元素是不可分的(原子的)
2.事務中的所有元素必須作為一個整體提交或回滾
3.如果事務中的任何元素失敗,則整個事務將失敗

一致性(Consistency):

務完成時,數據必須處于一 致狀態:在事務開始之前,數據庫中存儲的數據處于一致狀態;在正在進行的事務中,數據可能處于不一致的狀態;當事務成功完成時,數據必須再次回到已知的一致狀態

隔離性(Isolation):

1.對數據進行修改的所有并發事務是彼此隔離的,這表明事務必須是獨立的,它不應以任何方式依賴于或影響其他事務
2.修改數據的事務可以在另一個使用相同數據的事務開始之前訪問這些數據,或者在另一個使用相同數據的事務結束之后訪問這些數據

持久性(Durability):

1.事務持久性指不管系統是否發生故障,事務處理的結果都是永久的
2.一旦事務被提交,事務的效果會被永久地保留在數據庫中

事務的操作

1.默認情況下MySQL的事務是自動提交的,當sql語句提交時事務便自動提交
2.手動對事務進行控制的方法:

①事務處理命令控制
②使用set設置事務處理方式

3.事務處理命令控制事務:

①begin:開始一個事務
②commit:提交一個事務
②rollback:回滾一-個事務

4.使用set命令進行控制:

①set autocommit=0:禁止自動提交
②set autocommit=1:開啟自動提交


存儲引擎概念介紹

1.MySQL中的數據用各種不同的技術存儲在文件中,每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并最終提供不同的功能和能力,這些不同的技術以及配套的功能在MySQL中稱為存儲引擎2.存儲引擎就是MySQL將數據存儲在文件系統中的存儲方式或者存儲格式3.目前MySQL常用的兩種存儲引擎:

MyISAM(適合讀)
InnoDB(適合寫)

4.MySQL存儲引擎是MySQL數據庫服務器中的組件,負責為數據庫執行實際的數據I/O操作5.使用特殊存儲引擎的主要優點之一在于, 僅需提供特殊應用所需的特性,數據庫中的系統開銷較小,具有更有效和更高的數據庫性能6.MySQL系統中,存儲引擎處于文件系統之.上,在數據保存到數據文件之前會傳輸到存儲引擎,之后按照各個存儲引擎的存儲格式進行存儲

MyISAM的介紹

1.MyISAM存儲引擎是MySQ關系數據庫系統5.5版本之前默認的存儲引擎,前身是ISAM2.ISAM是一個定義明確且歷經時間考驗的數據表格管理方法,在設計之時就考慮到數據庫被查詢的次數要遠大于更新的次數3.SAM的特點:

①ISAM執行讀取操作的速度很快,
②它不支持事務處理
③而且不占用大量的內存和存儲資源
④不能夠容錯

三個文件:

表定義文件
表數據存儲文件
表索引文件

MyISAM適用的生產場景舉例:

1.公司業務不需要事務的支持
2.一般單方面讀取數據比較多的業務,或單方面寫入數據比較多的業務
3.MyISAM存儲引擎數據讀寫都比較頻繁場景不適合
4.使用讀寫并發訪問相對較低的業務
5.數據修改相對較少的業務
6.對數據業務一致性要求不是非常高的業務
7.服務器硬件資源相對比較差

InnoDB特點介紹

1.支持事務:支持4個事務隔離級別
2.行級鎖定,但是全表掃描仍然會是表級鎖定
3.讀寫阻塞與事務隔離級別相關
4.具有非常高效的緩存特性:能緩存索引,也能緩存數據
5.表與主鍵以簇的方式存儲
6.支持分區、表空間,類似oracle數據庫
7.支持外鍵約束,5.5以前不支持全文索引,5.5版本以后支持全文索引
8.對硬件資源要求還是比較高的場合

InnoDB適用生產場景分析

1.業務需要事務的支持
2.行級鎖定對高并發有很好的適應能力,但需確保查詢是通過索引來完成
3.業務數據更新較為頻繁的場景, 如:論壇,微博等
4.業務數據一致性要求較高,例如:銀行業務
5.硬件設備內存較大, 利用Innodb較好的緩存能力來提高內存利用率,減少磁盤IO的壓力

配置存儲引擎

1.在企業中選擇好合適的存儲引擎之后,就可以進行修改了
2.修改步驟:

①查看數據庫可配置的存儲引擎
②查看表正在使用的存儲引擎
③配置存儲引擎為所選擇的類型

3.使用show engines查看系統支持的存儲引擎查看表使用的存儲引擎

方法1: show table status from庫名where name='表名;
方法2: show create table表名

以上就是MySQL索引與事務,視圖及存儲引擎MylSAM和lnnoDB,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临安市| 玉林市| 滁州市| 石楼县| 长兴县| 荥阳市| 广水市| 龙井市| 肇州县| 洮南市| 磴口县| 巩留县| 独山县| 罗源县| 天峨县| 朝阳区| 广元市| 隆尧县| 洪江市| 石柱| 开鲁县| 河池市| 林芝县| 七台河市| 广昌县| 登封市| 利津县| 吉安市| 老河口市| 龙胜| 同心县| 教育| 民乐县| 佛学| 万州区| 原阳县| 苏尼特左旗| 华安县| 霍城县| 阳江市| 元氏县|