MySQL是一款流行的關系型數據庫管理系統,它支持多種索引類型。索引是用來優化查詢的重要手段,可以提高數據庫的查詢效率。在MySQL中,常用的索引類型包括B樹索引、哈希索引和全文索引。
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `age` int(11) NOT NULL, `gender` varchar(10) NOT NULL, `address` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `name_index` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
B樹索引是MySQL中最常用的索引類型,它可以用于各種數據類型。B樹索引會將索引鍵按照一定的算法排序,通過二分查找的方式快速定位到相應的記錄。在上述代碼中,定義了一個學生表(student),包括id、name、age、gender和address五個字段,其中id為主鍵,name字段建立了B樹索引。
CREATE TABLE `product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `price` decimal(10,2) NOT NULL, PRIMARY KEY (`id`), KEY `price_index` (`price`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
哈希索引是一種特殊的索引類型,適用于等于(=)操作,而不適用于范圍(<、>)操作。哈希索引將索引鍵映射到一個哈希表中,可以快速定位到相應的記錄。在上述代碼中,定義了一個商品表(product),包括id、name和price三個字段,其中id為主鍵,price字段建立了哈希索引。
CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, FULLTEXT KEY `content_index` (`content`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
全文索引適用于全文搜索,可以快速定位到包含關鍵字的記錄。在MySQL中,只有MyISAM和InnoDB引擎支持全文索引,定義全文索引需要使用FULLTEXT關鍵字。在上述代碼中,定義了一篇文章表(article),包括id、title和content三個字段,其中content字段建立了全文索引。