1檢視表的所有索引
show index from tablename \g;
2普通索引的建立
2.1
語法create index index_name on table_name(field_name,asc/desc)
create index i_dogname on dog(dogname asc)
;2.2
語法 alter table table_name add index index_name(field_name)
alter table dog add index i_dog***(dog***)
;3 刪除普通索引
alter table table_name drop index index_name;
alter table dog drop index i_dogname;
4建立主鍵索引
主鍵索引一般在建表指定主鍵時候自動生成
create table primary_index(
idint primary key auto_increment)
;show index from primary_index\g;
****
****
****
****
****
*******
1. row **
****
****
****
****
****
****
* table: primary_index 索引表
non_unique:
00代表唯一索引 |
1代表不是唯一索引
key_name: primary 表示索引的名稱
seq_in_index:
1 單列索引為1
| 組合索引則該列的值位每列在索引定義中的順序
column_name:
id 新增了索引的字段列
collation: a 公升序a 無非類null
cardinality:
0
sub_part: null 表示列中應用了索引的字元數目 ;如果整列都被新增了索引 則為null
packed: null 關鍵字如何壓縮沒壓縮值位null
null: 索引列中是否有null的值 有就yes 沒有no
index_type: btree 顯示索引使用的型別和方法一般是 (btree,fulltext,hash,rtree)
comment: 顯示評注
index_comment:
5刪除主鍵索引
先用modify 取消主鍵自增
alter table primary_index modify id
intnot null;
在刪除alter table primary_index drop primary key;
5復合索引
這個我還不太懂
1建立語句是這樣
alter table com add index in_name(cjobnum,cdepid,cdepname)
;6全文索引
1建立語句
alter table dogmaster add fulltext i_dogmaster(mname)
;一般會用全文索引伺服器 不會直接建立全文索引
查完資料在寫索引效率更高
語法 table_name
explain select *
from tb_teacher\g
分析查詢結果
****
****
****
****
****
*******
1. row **
****
****
****
****
****
*****id
:1select_type: ****** 查詢複雜度
table: tb_teacher 查詢表
partitions: null 分割槽情況
type
: all 型別
possible_keys: null 可能用到的索引
key: null 實際用到的索引
key_len: null 鍵值長度
ref: null 查詢速度
rows:
5 影響行數
filtered:
100.00 過濾
extra: null 額外
1 row in
set,
1 warning (
0.00 sec)
type 有 all(全表掃瞄),
index(索引全掃瞄),
rang(索引範圍掃瞄),
ref(非唯一掃瞄),
eq_ref唯一索引掃瞄
不適用索引的情況
1 聯合索引沒有左字首
2or條件裡如果一方字段沒有索引
3 型別不對應
4 like"%ff" 萬用字元在左邊
5 使用 !=
,<>
,not
,in
MySql 05 筆記 索引
1 select from t where k between 3 and 5執行幾次搜尋樹?會掃瞄多少行?create table t id int primary key,k int notnull default0,s varchar 16 not null default index k k...
MySQL 05 資料型別
型別 大小 位元組 用途tinyint 1小整數值 smallint 2大整數值 mediumint 3大整數值 int4 大整數值 bigint 8極大整數值 float 4單精度浮點數值 double 8雙精度浮點數值 decimal decimal m,d m d?m 2 d 2 小數值型別 ...
MySQL 05(資料庫的刪除)
當資料庫不再使用時應該將其刪除,以確保資料庫儲存空間中存放的是有效資料。刪除資料庫是將已經存在的資料庫從磁碟空間上清除,清除之後,資料庫中的所有資料也將一同被刪除。在 mysql 中,當需要刪除已建立的資料庫時,可以使用 drop database 語句。其語法格式為 drop database i...