溫馨提示×

溫馨提示×

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

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

如何在Mysql數(shù)據(jù)庫中使用視圖、事務(wù)和索引

發(fā)布時間:2021-05-26 09:46:37 來源:億速云 閱讀:244 作者:Leah 欄目:MySQL數(shù)據(jù)庫

今天就跟大家聊聊有關(guān)如何在Mysql數(shù)據(jù)庫中使用視圖、事務(wù)和索引,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

視圖是對若干張基本表的引用,一張?zhí)摫?,只查詢語句執(zhí)行結(jié)果的字段類型和約束,不存儲具體的數(shù)據(jù)(基本表數(shù)據(jù)發(fā)生了改變,視圖也會跟著改變),方便操作,特別是查詢操作,減少復(fù)雜的SQL語句,增強可讀性。

1.————創(chuàng)建視圖:

create view 視圖名稱(一般以v_開頭) as 查詢語句;

2.————查看視圖:

select * from 視圖名稱;

3.————刪除視圖:

drop view 視圖名稱;

事務(wù)

1.特性:四大特性ACID

(1)原子性(Atomicity):一個事務(wù)必須被視為一個不可分割的最小工作單元,整個事務(wù) 中的所有操作要么全部提交成功,要么全部失敗回滾,對于一個事務(wù)來說,不可能只執(zhí)行其中的一部分操作。

(2)一致性(Consistency):數(shù)據(jù)庫總是從一個一致性的狀態(tài)轉(zhuǎn)換到另一個一致性的狀態(tài)。

(3)隔離性(Isolation):一個事務(wù)所做的修改在最終提交以前,對其他事務(wù)是不可見的。

(4)持久性(Durability):一旦事務(wù)提交,則其所做的修改會永久保存到數(shù)據(jù)庫。

2.使用:

(1)開啟事務(wù):開啟事務(wù)后執(zhí)行修改命令,變更會為護到本地緩存,而不是物理表中。
begin;或者start transaction;

(2)回滾事務(wù):放棄緩存中變更的數(shù)據(jù),表示事務(wù)執(zhí)行失敗,回到開始事務(wù)的狀態(tài)。
rollback;

(3)提交事務(wù):將緩存中的數(shù)據(jù)變更維護到物理表中。
commit;

索引

索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個組成部分),它們包含著對數(shù)據(jù)表里所有記錄的位置信息,更通俗的說,數(shù)據(jù)庫索引好比是一本書前面的目錄,能加快數(shù)據(jù)庫的查詢速度。

1.使用:

(1)————查看索引:

show index from 表名;

(2)————創(chuàng)建索引:

create index 索引名稱 on 表名(字段名稱(長度));

(3)————刪除索引:

drop index 索引名稱 on 表名;

2.驗證性能:

(1)開啟運行時間檢測:

set profiling=1;

(2)查找第十萬條數(shù)據(jù):

select * from test_index where title='ha-99999';

(3)為表建立索引:

create index title_index on test_index(title(10));

(4)查找第十萬條數(shù)據(jù):

select * from test_index where title='ha-99999';

(5)查看執(zhí)行時間:

show profiles;

如何在Mysql數(shù)據(jù)庫中使用視圖、事務(wù)和索引

總結(jié):索引可以極大提升查詢速度,但是創(chuàng)建索引的時間比查詢的速度要慢很多,所以 數(shù)據(jù)表經(jīng)常更新時,不適合使用索引,當數(shù)據(jù)表數(shù)據(jù)很大時,并且長時間不更新時,建 議使用索引,其他情況不建議使用。

用戶管理

1.————查看用戶: 

select host,user,authentication_string from user;

 ————查看用戶權(quán)限:

show grants for 用戶名@主機;

2.————創(chuàng)建用戶并賦予權(quán)限:'

grant 權(quán)限名稱 on 數(shù)據(jù)庫名.* to ‘用戶名'@'主機' identified by ‘密碼';

3.————修改權(quán)限: 

grant 權(quán)限名稱 on 數(shù)據(jù)庫名.* to ‘用戶名'@'主機' where grant option;

 刷新權(quán)限:

flush privileges;

4.————修改密碼:

update user set authentication_string=password(‘新密碼') where user='用戶名';

5.————刪除用戶:
卸載:

drop drop user ‘用戶名'@'主機';

 手動刪除:

delete from user where user='用戶名';

 刷新權(quán)限:

flush privileges;

自連接

將多張相似表的數(shù)據(jù)匯總到一個表中,將自己與自己相連接進行查詢。

1.————用法:

select * from 表名 as 別名1 inner join 表名 as 別名2 on 條件;

2.————案例:

如何在Mysql數(shù)據(jù)庫中使用視圖、事務(wù)和索引

aid為編號,pid為所屬編號
查詢山西省的所有城市:

select city.* from areas as cityinner join areas as province 
on city.pid=province.aidwhere province.atitle='山西省';

如何在Mysql數(shù)據(jù)庫中使用視圖、事務(wù)和索引

看完上述內(nèi)容,你們對如何在Mysql數(shù)據(jù)庫中使用視圖、事務(wù)和索引有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

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

AI