索引是一种有效组合数据的方式,为快速查找到指定记录
作用
大大提高数据库的检索速度
改善数据库性能
MySQL索引按存储类型分类
1.B-树索引:InnoDB、MyISAM均支持---二分的方式---
innodb是数据库引擎之一,最大特性是支持ACDI兼容的事务。
myisam:默认存储索引
2.哈希索引:它是一种算法,随便取一个数,所有数除以取得数取余,余数相同的放在一起,下标0,1,2... 余数和下表对应
where里有多个条件,优先索引条件查
索引类型:
普通索引:基本索引类型,允许在定义索引的列中插入重复值和空值
唯一索引:索引列数据不重复,允许有空值
主键索引:主键列中的每个值是非空、唯一的,一个主键将自动创建主键索引
复合索引:将多个列组合作为索引
全文索引:支持值的全文查找,允许重复值和空值,myisam支持,innodb不支持。
空间索引:对空间数据类型的列建立的索引 多用于地图。
创建索引:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
ON table_name (column_name[length]…);
删除索引:
DROP INDEX index_name ON table_name;
按照下列标准选择建立索引的列:
频繁搜索的列
经常用作查询选择的列
经常排序、分组的列
经常用作连接的列(主键/外键)
仅包含几个不同值的列
表中仅包含几行
数据库备份:
mysqldump [options] –u username –h host –ppassword
dbname[tbname1[,tbname2……]]>filename.sql#在dos命令下操作
恢复数据库:
1.mysql –u username –p [dbname] < filename.sql
2.使用source命令恢复数据库
source filename;
数据导出文件:
SELECT * FROM tablename
[WHERE contion]
INTO OUTFILE 'filename' [OPTION]
文件导入到数据表:
LOAD DATA INFILE filename INTO TABLE tablename [OPTION]