溫馨提示×

溫馨提示×

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

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

Mysql 視圖、索引

發(fā)布時間:2020-06-06 13:19:15 來源:網(wǎng)絡(luò) 閱讀:647 作者:lzf05303774 欄目:MySQL數(shù)據(jù)庫

一、視圖:
1、視圖的定義:視圖是物理表的映射結(jié)果,物理表變化,視圖肯定變化。

create view v_name as select 列名(也可以是函數(shù)計算出來的結(jié)果如 avg()) from 表;

2、視圖的作用:
2.1、權(quán)限控制
比如某幾列,允許用戶查詢,其它列不允許。
可以通過視圖開放其中一列或者幾列,起到權(quán)限控制的作用。
如商品表中的進貨價格、進貨商等重要信息,一般用戶是不能看到的。
2.2、簡化復(fù)雜的查詢語句。

3、視圖能否更新、刪除、添加?
如果view的每一行與物理表一一對應(yīng),則可以,視圖變化物理表變化。
如果view的行是由物理表多行經(jīng)過計算得到的結(jié)果,view不可以更新的。

二、delete與truncate的區(qū)別:

1、delete是DML的,只是刪除表中的數(shù)據(jù)。

2、truncate是DDL的,先刪除表,在創(chuàng)建表。

舉例:創(chuàng)建一個列自增長的表,操作一下就一目了然啦....

三、索引:

對于提高數(shù)據(jù)庫性能,索引是個物美價廉的方式。不用加內(nèi)存,不用改程序,不用調(diào)sql,只需要正確建立索引,就可以把查詢速度提高百倍千倍。不過天下沒有免費的午餐,建立索引提高了查詢速度,但降低了增、刪、改的速度。

1、索引是數(shù)據(jù)的目錄,能快速定位行數(shù)據(jù)的位置。

2、索引提高了查詢速度,但是降低了增、刪、改的速度(增刪改時 索引表也要變更),因此并非索引越多越好。

3、索引一般建立在查詢頻率高的列上加,并且加在重復(fù)度低的列上效果更好。

4、索引分類:

(1)、index|key 普通索引:提高查詢速度。
A、創(chuàng)建表時指定:create table test(id int,key(id));
B、創(chuàng)建表后添加:alter table 表名 add index(id)或 create index index_name on tableName(列)

(2)、unique |unique key唯一索引:加快查詢速度,并且約束數(shù)據(jù)不能重復(fù)。
A、創(chuàng)建表時指定:create table test(id int primary key,name varchar(30),email varchar(30) unique);
或者create table test(id int primary key,name varchar(30),email varchar(30),unique (email));
B、創(chuàng)建表后添加: alter table 表名 add unique(列)

(3)、primary key主鍵索引:加快查詢速度,并且約束數(shù)據(jù)不能重復(fù)。

A、創(chuàng)建時指定:
create table test(id int primary key)

B、創(chuàng)建表后添加:
alter table 表名 add primary key(列)

(4)、fulltext全文索引:
主要是針對文字的檢索,只對MyISAM引擎有效,在InnoDB上無效。并且在中文環(huán)境下幾乎是無效的,要分詞加索引才可以,一般用第三方解決方案,如compass。
(5)、主鍵索引和唯一索引的區(qū)別:
主鍵索引不能為空,不能重復(fù);唯一索引可以為空,不能重復(fù)。
四、常用的語句:

1、show databases :顯示所有數(shù)據(jù)庫;

2、show create database 數(shù)據(jù)庫名:顯示創(chuàng)建數(shù)據(jù)庫的語句。

3、show create table 表名:顯示創(chuàng)建表的語句。

4、show index from 表名:顯示表的索引。

5、show table status :當(dāng)前庫顯示所有表的status;

6、show table status like 表名:當(dāng)前庫顯示某張表的status;

7、select database():顯示當(dāng)前庫名。

8、select user():顯示當(dāng)前用戶。

9、explain sql語句:顯示sql語句的執(zhí)行狀況。

10、添加/刪除索引:
alter table 表名 add [index|unique] 索引名(列名)
drop table index 索引名 on 表名
11、添加/刪除主鍵索引:
alter table 表名 add primary key(列名)
drop table primary key on 表名

向AI問一下細節(jié)

免責(zé)聲明:本站發(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