欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql事務索引知識匯總

 更新時間:2022年03月16日 11:20:39   作者:Lokemow  
這篇文章主要介紹了Mysql事務索引知識匯總,mysql事務是用于處理操作量大、復雜性高的數(shù)據(jù),索引能加快數(shù)據(jù)庫的查詢速度并高效獲取指定的數(shù)據(jù),下文相關詳細內(nèi)容,需要的小伙伴可以參考一下

一、事務

          mysql事務是用于處理操作量大、復雜性高的數(shù)據(jù)

1. 事務特性

  • 原子性:保證每個事務所有操作要么全部完成或全部不完成,不可能停滯在中間環(huán)節(jié);如事務在執(zhí)行過程中出現(xiàn)錯誤,則會回滾到一致性:事務開始結(jié)束后保證數(shù)據(jù)庫的完整性沒有被破壞,數(shù)據(jù)都是按照數(shù)據(jù)庫要求的規(guī)范寫入。
  • 隔離性:數(shù)據(jù)庫允許多個事務同時對數(shù)據(jù)進行讀寫改操作,隔離性則可以防止多個事務由于交叉執(zhí)行時導致數(shù)據(jù)不一致;事務中隔離分為4個級別?!境霈F(xiàn):√ 不會出現(xiàn):×】
 

臟讀

不可重復讀幻讀
讀未提交

??

????
讀已提交??????
可重復讀??????
串行化??????

持久性:事務提交后對數(shù)據(jù)庫中的修改則是永久性的。

2. 事務并發(fā)時出現(xiàn)的問題

  • 臟讀:一個事務在處理過程中讀取了另一個未提交的事務數(shù)據(jù),當未提交的數(shù)據(jù)提交后,最終導致數(shù)據(jù)不一致。
  • 不可重復讀:一個事務在多次進行查詢返回數(shù)據(jù)時,另一個事務將數(shù)據(jù)修改后提交,導致前事務數(shù)據(jù)產(chǎn)生不同的結(jié)果。
  • 幻讀:A事務將數(shù)據(jù)修改完畢時,同一時間B事務新增一條數(shù)據(jù),A事務提交后查詢發(fā)現(xiàn)還有一條數(shù)據(jù)沒有進行修改,好似產(chǎn)生幻覺一樣則為幻讀。

二、索引

    索引能加快數(shù)據(jù)庫的查詢速度并高效獲取指定的數(shù)據(jù)。

優(yōu)勢:

  • 提高數(shù)據(jù)檢索效率,降低數(shù)據(jù)庫IO成本
  • 通過索引列可以對數(shù)據(jù)進行排序,降低CPU消耗
  • 確保數(shù)據(jù)唯一性
  • 加速表與表之間連接,實現(xiàn)表與表之間參照完整性

劣勢:

  • 占據(jù)磁盤空間
  • 降低更新表的效率

1. 索引使用

? ? ? ? 創(chuàng)建索引?? ??
? ? ? ? ? ? ? 普通索引:
? ? ? ? ? ? ? ? ? create index 索引名稱 on 表名(列名)

? ? ? ? ? ? ? 其他索引(舉例唯一索引unique): ?
? ? ? ? ? ? ? ? ? 公式:
? ? ? ? ? ? ? ? ? ? ? create unique index 索引名稱 on 表名(列名)
? ? ? ? ? ? ? ? ? 實例:
? ? ? ? ? ? ? ? ? ? ? create table Demo(id int,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? name varchar(20),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sex int,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? unique index Demo_id(id ASC));
? ? ? ? ? ? 刪除索引
? ? ? ? ? ? ? ? 刪除:
? ? ? ? ? ? ? ? ? ? 公式:
? ? ? ? ? ? ? ? ? ? ? ? drop index 索引名 on 表名;
? ? ? ? ? ? ? ? ? ? 實例:
? ? ? ? ? ? ? ? ? ? ? ? drop index Dmoe_id on Demo;

2. 索引類型

  • 主鍵索引(primary key):對主鍵進行索引,主鍵不允許空值。
  • 普通索引(index/key):默認類型,無限制,允許定義索引時有重復值和空值。
  • 唯一索引(unique key):專注于對唯一類型數(shù)據(jù)進行索引,允許空值。 
  • 全文索引(full key):用于數(shù)值比較、范圍過濾、關鍵字匹配的范圍性快速查詢。 
  • 聯(lián)合索引:多列值組成索引,用于多列組合查詢。

3. 索引注意原則

  • 索引不是越多越好,數(shù)據(jù)量小的表不建議添加索引
  • 不建議在經(jīng)常增刪改操作的表中添加索引
  • 索引一般添加在需要索引的列上

三、SQL

             SQL是一種結(jié)構(gòu)化查詢語言,用于對數(shù)據(jù)進行插入、查詢、更新、刪除操作來管理數(shù)據(jù)庫系統(tǒng)。

1. SQL優(yōu)點

  • 簡單易學,操作性強
  • 大多數(shù)數(shù)據(jù)庫都支持SQL
  • SQL操作數(shù)據(jù)庫時大部分的工作由DBMS來完成

2. SQL分類

  • DDL[數(shù)據(jù)定義語言]:用于操作數(shù)據(jù)庫、表、列,常用語句create、alter、drop;
  • DML[數(shù)據(jù)操作語言]:用于操作數(shù)據(jù)庫中數(shù)據(jù),常用語句insert、update、delect;
  • DCL[數(shù)據(jù)控制語言]:用于操作訪問權(quán)限和安全級別,常用語句grant、deny;
  • DQL[數(shù)據(jù)查詢語言]:用于查詢數(shù)據(jù),常用語句select;

3. SQL語法及關鍵字                

  • insert into:數(shù)據(jù)插入操作,語法為insert into 表名(列1,列2)value(值1,值2),插入時列名和值需要一一對應。
  • select from:數(shù)據(jù)查詢操作,語法為select * from 表名;*則代表全部列名,可通過輸入列名來查詢特定數(shù)據(jù)。
  • update set:更新操作,語法為update 表名 set 條件A where 條件B,條件A為修改條件,條件B為修改操作。
  • delete from:刪除操作,語法為delect from 表名 where 條件A,條件A為刪除條件。
  • where:用于sql中條件判斷、條件過濾等操作。
  • having:類似于where,一般使用于group by之后,與where區(qū)別在于where過濾行,having過濾組。
  • like:用于模糊查詢,主要只針對于“字符型”字段,常用"_"和"%"這兩種通配符,前者充當占位符,后者代表匹配任意字符。
  • order by:用于數(shù)據(jù)排序,常用ASC升序排列和DESC降序排列。
  • group by:用于對字段進行分組。
  • not:用于判斷表達式真假,類似于java語言中boolean。
  • and:用于在where子句后面將多個條件結(jié)合起來。
  • between:用于取兩個值之間的數(shù)據(jù)范圍。
  • lnner join:內(nèi)連接,多表連接時只會顯示滿足條件的數(shù)據(jù)結(jié)果。
  • left join:左連接,多表連接時只會以左表為基準顯示左表全部數(shù)據(jù),右表只會顯示對應數(shù)據(jù),若無對應數(shù)據(jù)顯示null。
  • right join:右連接,與左連接相反;多表連接時只會以右表為基準顯示左表全部數(shù)據(jù),左表只會顯示對應數(shù)據(jù),若無對應數(shù)據(jù)顯示null。
  • in:用于嵌套語句查詢,常用語子查詢中。

四、數(shù)據(jù)庫設計

1. 數(shù)據(jù)庫三大范式

  • 每個字段具有原子性不可再分。
  • 建立在第一范式的基礎上,確保數(shù)據(jù)庫表列中只保存一種數(shù)據(jù),不可以把多種數(shù)據(jù)保存在一個數(shù)據(jù)庫表列中。
  • 建立在地二范式的基礎上,數(shù)據(jù)不能存在傳遞關系,數(shù)據(jù)庫中每個字段和主鍵都是直接關系。

2. 數(shù)據(jù)庫規(guī)范設計

  • 系統(tǒng)需求分析
  • 概念結(jié)構(gòu)設計
  • 邏輯結(jié)構(gòu)設計
  • 物理結(jié)構(gòu)設計
  • 數(shù)據(jù)庫實施
  • 數(shù)據(jù)庫運維

到此這篇關于Mysql事務索引知識匯總的文章就介紹到這了,更多相關Mysql事務索引內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • CentOS7版本安裝Mysql8.0.20版本數(shù)據(jù)庫的詳細教程

    CentOS7版本安裝Mysql8.0.20版本數(shù)據(jù)庫的詳細教程

    這篇文章主要介紹了CentOS7版本安裝Mysql8.0.20版本數(shù)據(jù)庫的教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • MySQL 截取字符串函數(shù)的sql語句

    MySQL 截取字符串函數(shù)的sql語句

    這篇文章主要介紹了MySQL 截取字符串函數(shù)的sql語句,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • MySQL使用show?effective?grants查看權(quán)限官方解讀

    MySQL使用show?effective?grants查看權(quán)限官方解讀

    這篇文章主要為大家介紹了MySQL使用show?effective?grants查看權(quán)限,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • MySQL七大JOIN的具體使用

    MySQL七大JOIN的具體使用

    本文主要介紹了MySQL七大JOIN的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • mysql視圖功能與用法實例分析

    mysql視圖功能與用法實例分析

    這篇文章主要介紹了mysql視圖功能與用法,結(jié)合實例形式分析了mysql數(shù)據(jù)庫視圖的概念、功能、使用方法、與臨時表的區(qū)別及操作相關注意事項,需要的朋友可以參考下
    2019-04-04
  • mysql常用命令以及小技巧

    mysql常用命令以及小技巧

    這篇文章主要分享的是mysql常用命令以及小技巧,概述清理二進制日志、mysqldump不鎖表、mysql跳過空事務等相關資料展開主題,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02
  • MySQL數(shù)據(jù)庫必備之條件查詢語句

    MySQL數(shù)據(jù)庫必備之條件查詢語句

    當用戶查看表格的大量數(shù)據(jù)是,由于數(shù)據(jù)量過于巨大會導致很難獲取到需要的數(shù)據(jù),在這時,就需要一個方法,一個可以通過用戶輸入獲取到用戶需要的數(shù)據(jù)并回填入表格,這就是條件查詢的作用
    2021-10-10
  • SQL使用復合索引實現(xiàn)數(shù)據(jù)庫查詢的優(yōu)化

    SQL使用復合索引實現(xiàn)數(shù)據(jù)庫查詢的優(yōu)化

    這篇文章主要介紹了SQL使用復合索引實現(xiàn)數(shù)據(jù)庫查詢的優(yōu)化,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • MySQL如何快速修改表的表結(jié)構(gòu)

    MySQL如何快速修改表的表結(jié)構(gòu)

    這篇文章主要介紹了MySQL如何快速修改表的表結(jié)構(gòu),幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08
  • Mysql如何解決1251 client does not support問題

    Mysql如何解決1251 client does not support問題

    這篇文章主要介紹了Mysql如何解決1251 client does not support問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論