国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL中索引與視圖的用法與區(qū)別詳解

2024-07-24 12:50:55
字體:
供稿:網(wǎng)友

前言

本文主要給大家介紹了關(guān)于MySQL中索引與視圖的使用與區(qū)別的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

索引

一、概述

所有的Mysql列類型都可以被索引。

mysql支持BTREE索引、HASH索引、前綴索引、全文本索引(FULLTEXT)【只有MyISAM引擎支持,且僅限于char,varchar,text列】、空間列索引【只有MyISAM引擎支持,且索引的字段必須非空】,但不支持函數(shù)索引。

MyISAM和InnoDB存儲(chǔ)引擎的表默認(rèn)創(chuàng)建BTREE索引,
MEMORY存儲(chǔ)引擎的表默認(rèn)創(chuàng)建HASH索引。

二、創(chuàng)建索引

create index語法為:

create [unique|fulltext|spatial] index index_name [using index_type]on tbl_name(index_col_name, ...);index_col_name: col_name [(length)] [asc/desc]

也可使用alter table增加索引,語法為:

ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification] ...alter_specification: ... ADD INDEX [index_name] [index_type] (index_col_name,...) ...

例如:為city表創(chuàng)建10個(gè)字節(jié)的前綴索引

mysql> create index cityName on city(Name(10));mysql> alter table city add index cityName(Name(10));

三、查看索引

可以使用show index from table;查看table表的當(dāng)前所有索引。

四、刪除索引

drop index index_name on tbl_name;

五、BTREE索引和HASH索引

MEMORY存儲(chǔ)引擎的表可以選擇使用BTREE索引和HASH索引

BTREE索引:

當(dāng)使用>、<、=、>=、<=、between、!=、<>或者like xxx(xxx不以通配符開始)操作符時(shí),都可以使用相關(guān)列上的BTREE索引。

HASH索引使用注意事項(xiàng):(和HASH表的局限性有關(guān))

只能用于使用=或<=>操作符之間的等式比較。 優(yōu)化器不能使用HASH索引來加速order by操作。 mysql不能確定在兩個(gè)值之前大約有多少行,會(huì)影響查詢一定的效率。 只能使用整個(gè)關(guān)鍵字搜索一行。

六、設(shè)計(jì)索引的原則

搜索的索引列,不一定是要選擇的列。最適合索引的列是出現(xiàn)在where子句中的列,而不是出現(xiàn)select后中的列。

使用唯一索引。選擇容易數(shù)值容易區(qū)分的列進(jìn)行索引。例如對生日的索引要比對性別的索引要好,因?yàn)樯盏牧芯哂胁煌闹担容^容易區(qū)分,而性別列只有M和F,此時(shí)索引用處不大,每次索引都得出大約一半的行。

使用短索引。對字符串的前綴索引中通常會(huì)指定一個(gè)前綴長度,如果在前10到20個(gè)字符內(nèi),多數(shù)值是唯一的,那么就可以不必對整個(gè)列進(jìn)行索引,而是對前10到20個(gè)字符進(jìn)行索引。這樣能夠節(jié)省索引空間,減少I/O時(shí)間,提高查詢效率。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 蕲春县| 巧家县| 松潘县| 霸州市| 平乐县| 泰州市| 苍山县| 抚松县| 眉山市| 漠河县| 东明县| 延安市| 马关县| 望城县| 东丽区| 抚顺市| 潜山县| 罗定市| 雷州市| 同江市| 固始县| 丰县| 黎平县| 原平市| 南丰县| 贵定县| 吴忠市| 平定县| 平顶山市| 珲春市| 峨边| 栾城县| 大化| 鹤庆县| 贵德县| 汨罗市| 额济纳旗| 叶城县| 清水县| 昌邑市| 汝阳县|