前言
总结一下学习的数据库索引内容。
一、索引是什么?
简单来说索引是一种数据结构,类似小时候查字典前面的那个东西。为了方便快速查到相应的数据而不需要扫描整个数据库。
二、Mysql 索引
四个索引类型
- FULLTEXT 全文索引
只能在CHAR、VARCHAR还有TEXT类型的列上创建该索引。
创建FULLTEXT索引的语法已经使用:
CREATE FULLTEXT INDEX index_name
ON table_name (column_name);
SELECT * FROM table_name
WHERE MATCH(column_name) AGAINST ('search_keyword');
整个索引好像是不建议用,性能不稳定
- NORMAL 普通索引
当不适用任何特殊索引类型时默认情况下会创建普通的B-tree索引,有时也称普通索引或者简单索引,仅仅提高查询速度。
SELECT * FROM table_name
WHERE MATCH(column_name) AGAINST ('search_keyword');
- UNIQUE 唯一索引
要求某列或者某组列中的值是唯一的,不可重复,而且也不可为空。
CREATE UNIQUE INDEX index_name
ON table_name (column_name);
CREATE TABLE table_name (
column_name data_type UNIQUE,
...
);
- SPATIAL 空间索引
最为特殊的索引,主要用于存储和查询地理空间数据。
创建SPATIAL索引,列的数据类型必须是GEOMEYRY、POINT、LINESTRING、POLYGON等空间数据类型。
使用该索引可以快速执行空间数据的查询操作,如查询指定范围内的点。
CREATE SPATIAL INDEX index_name
ON table_name (column_name);
Mysql的索引方法
Mysql的索引方法有两个,一个是B-tree,还有一个就是Hash。
Hash效率更高但是B-tree更常用。