索引
1).概念
索引:是針對資料所建立的目錄
作用:可以加快查詢速度
負面影響:降低了增刪改的速度。
2).案例
設有新聞表15列,10列上有索引,共500w行資料,如何快速匯入?
1.把空表的索引全部刪除
2.匯入資料
3.資料匯入完畢後,集中建索引。
3).索引的建立原則:
1.不要過度索引
2.在where條件最頻繁的列上加
3.盡量索引雜湊值,過於集中的值加索引意義不大。
4).索引的型別
普通索引:index僅僅是加快查詢速度。
唯一索引:unique index 行上的值不能重複
主鍵索引:primary key 不能重複
主鍵必唯一,但是唯一的索引不一定是主鍵。
一張表上,只能有乙個主鍵,但是可以用乙個或多個唯一索引
全文索引:fulltext index
5).檢視索引
show index from 表名
6).建立索引
alter table 表名 add index/unique/fulltext[索引名](列名)
alter table 表名 add primary key (列名) //不要加索引名,因為主鍵只有乙個
id int primary key auto_increment 建立乙個遞增的主鍵id;
7).刪除索引
刪除非主鍵索引:alter table 表名 drop index 索引名;
刪除主鍵:alter table 表名 drop primary key
2 全文索引
1).用法
match(全文索引名)against('keyword');
切記 只有》=3行的資料進行搜尋才會有結果!
以前在myisam資料庫引擎中支援全文本搜尋,但是現在5.5版本的innodb也開始支援了
create table 列名(
)engine = myisam;
2).關於全文索引的停止詞
全文索引不針對非常頻繁的詞做索引,
如this,is,you,my等等
全文索引:在mysql的預設情況下,對於中文意義不大。
因為英文有空格,標點符號來拆成單詞,進而對單詞進行索引,
而對於中文,沒有空格來隔開單詞,mysql無法識別每個中文詞。
3 儲存過程
1).概念
類似於函式,就是把一段**封裝起來,當要執行這一段**的時候,可以通過該儲存過程來實現
在封裝的語句體裡面,可以用if/else,case,while等控制結構,可以進行sql程式設計
2).檢視現有的儲存過程
show procedure status
3).刪除儲存過程
drop procedure 儲存過程的名字
4).呼叫儲存過程
call 儲存過程名字();
-->第1個儲存過程,體會「封裝sql」
create procedure p1()
begin
select * from g;
end$
-->第2個儲存過程,體會「引數」
create procedure p1(n int)
begin
select * from g where num > n;
end$
-->第3個儲存過程,體會「控制結構」
create procedure p1(n int,j char(1))
begin
if j = 'h' then
select * from g where num > n;
else
select * from g where num < n;
end if;
end$
-->計算1->n的和
create procedure p4(n smallint)
begin
declare i int;
declare s int;
set i = 1;
set s = 0;
while i <= n do
set s = s + i;
set i = i + 1;
end while;
select s;
end$
-->在mysql中,儲存過程和函式的區別:
乙個是名稱不同,
索引與儲存過程
1 索引 1 概念 索引 是針對資料所建立的目錄 作用 可以加快查詢速度 負面影響 降低了增刪改的速度。2 案例 設有新聞表15列,10列上有索引,共500w行資料,如何快速匯入?1.把空表的索引全部刪除 2.匯入資料 3.資料匯入完畢後,集中建索引。3 索引的建立原則 1.不要過度索引 2.在wh...
sql 索引 儲存過程
儲存過程 優點 1.由於應用程式隨著時間推移會不斷更改,增刪功能,t sql過程 會變得更複雜,storedprocedure為封裝此 提供了乙個替換位置。2.執行計畫 儲存過程在首次執行時將被編譯,這將產生乙個執行計畫 實際上是 microsoft sql server為在儲存過程中獲取由 t s...
儲存過程及索引概述
儲存過程 stored procedure 可以包含邏輯判斷的sql語句集合。是經過預編譯,存在於資料庫中。通過呼叫指定儲存過程的名字 可有參,可無參 來執行。優點 簡化了複雜的業務邏輯,根據需要可重複使用 遮蔽了底層細節,不暴露表資訊即可完成操作 降低網路的通訊量,多條語句可以封裝成乙個儲存過程來...