下面一起來了解下Mysql中的索引,事務與視圖,相信大家看完肯定會受益匪淺,文字在精不在多,希望Mysql中的索引,事務與視圖這篇短內容是你想要的。
索引是一種特殊的文件,包含著對數據表中所有記錄的引用指針。更通俗地說,數據庫索引好比一本書前面的目錄,能加快數據庫的查詢速度。例如需要遍歷2000條數據,在沒有索引的情況下,數據庫會遍歷全部2000條數據后選擇符合條件的;而有了相應的索引之后,數據庫會直接在索引中查找符合條件的選項。數據庫索引就是為了提高表的搜索效率而對某些字段中的值建立的目錄。
(1)快速定位,大大加快數據的查詢速度;
(2)降低數據庫的IO(輸入/輸出)成本,降低數據庫的排序成本;
(3)通過創建唯一性索引,可以保證數據表中的每一行數據的唯一性;
(4)加快表和表之間的聯系;
(1)普通索引,最基本的索引類型,沒有唯一性之類的限制
(2)唯一索引,索引列的所有值只能出現一次,即必須唯一,可以有一個為空值
(3)主鍵索引,主鍵是一種唯一索引,但它必須指定為“PRIMARY KEY”,不可以為空值,在數據庫中為表定義主鍵將自動創建主鍵索引,主鍵索引是唯一索引的特殊類型。該索引要求主鍵中的每一個值都唯一
(4)全文索引,索引類型為FULLTEXT,全文索引可以在CHAR,VARCHAR或者TEXT類型的列上創建
(5)多列索引。多列索引可以區分其中一列可能有相同值的行。例如:如果經常在同一查詢中為姓和名兩列設置查詢條件,那么在這兩列上創建索引將很有意義
數據條目大于2000條 否則和不使用索引沒有多大區別
id name score hobby
1 張三 90 游泳
2 李四 79 看書
2 王五 68 畫畫
![]()
查看索引:show index from info \G; 在命令后面加上“\G”,可以豎向顯示索引的信息
命令格式:
create index 索引名 on 表名 (列名);
![]()
命令格式:create unique index 索引名 on 表(列名);
舉例:create unique index unique_id_index on info(id);
![]()
![]()
創建主鍵索引有兩種方式,一種是在創建表的同時創建主鍵,主鍵索引默認創建
另一種是已經創建了表,沒有指定主鍵,然后修改表加入主鍵,主鍵索引會自動創建,
命令格式:alter table 表名 add primary key(列名);
![]()
命令格式:drop index 索引名 on 表名;
舉例:
drop index name_index on info;
drop index unique_id_index on info;
![]()
![]()
命令格式:alter table 表名 drop primary key;
舉例:alter table info drop primary key;
增加一列,舉例:alter table info add column age int;
![]()
刪除表中一列;alter table info drop column age;
![]()
修改列的內容;alter table infos change hobby hobname char(16);
![]()
create index mulit_index on info(name,score);
事務是一種機制,一個操作序列,包含了一組數據庫操作命令,并且把所有的命令作為一個整體一起向系統提交或撤銷操作請求,即這一組數據庫命令要么執行,要么都不執行。事務是一個不可分割的工作邏輯單元,在數據庫系統上執行并發操作時,事務是最小的控制單元。事務適用于用戶同時操作數據庫系統的場景,如銀行,保險公司及證券交易系統等。通過事務的整體性以保證數據的一致性。事務是保證了一組操作的平穩性和可預測性的技術。
事務具體有四個特性:原子性;一致性;隔離性;持續性
(1)原子性:事務是一個完整的操作,各元素是不可分的,即原子的。事務中的所有元素必須作為一個整體提交或回滾。如果事務中的任何元素失敗,則整個事務將失敗
(2)一致性:當事務完成時,數據必須處于一致狀態;在事務開始之前,數據庫中存儲的數據處于一致狀態;在正在進行的事務中,數據可能處于不一致的狀態;當事務成功完成時,數據必須再次回到一致的一致狀態。
(3)隔離性:對數據進行修改的所有并發事務是彼此隔離的,這表明事務必須是獨立的,它不應以任何方式依賴于或影響其他事務。修改數據的事務可以在另一個使用相同數據的事務開始之前訪問這些數據,或者在另一個使用相同數據的事務結束之后訪問這些數據。
(4)持久性:指不管系統是否發生故障,事務處理的結果都是永久的。一旦事務被提交,事務的效果會被永久的保存在數據庫中
begin:表示開始一個事務,后面會有多條數據庫操作語句執行
commit:表示提交一個事務,對應前面的begin操作,它們之間的數據庫操作語句一起完成
rollback:表示回滾一個事務,在begin和commit之間,如果某一個數據庫操作語句出現錯誤,執行rollback回滾,數據庫回到begin之前的狀態,也就是操作語句都不執行
看完Mysql中的索引,事務與視圖這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。