mirror of
https://github.com/Estom/notes.git
synced 2026-02-03 02:23:31 +08:00
2.7 KiB
2.7 KiB
系列十二索引的使用和数据库的管理
- 索引的使用
- 管理数据库
#第五十一课时
--索引的使用
--索引有一列或多了组合而成,起作用是提高对表中数据的查询速度
--缺点是创建和维护索引需要耗费时间
--索引可以提高查询速度,减慢写入速度
--索引的分类bitree索引和hash索引
--普通索引,类似书签 index = 索引名称[索引字段]
--唯一索引,unique key或者主键unique key = 索引名称{索引字段}
--全文索引,只支持字符串字段,只能建立在全英文的内容上FULLTEXT KEY = 索引名称 索引字段
--单列索引,一个字段上的索引INDEX in_test1(test1)
--多列索引,多个字段上的索引INDEX 多列索引的名称(字段1,字段2,字段3...)
--空间索引,SPACIAL INDEX spa_test(test1);
--如何创建索引
--索引和索引名称不同,索引名称呢就像是某个目录的名字,叫小明索引,索引是指字段
--创建表的时候创建索引
CREATE TABLE tbl_name(
字段名称 字段类型[完整性约束条件],
...,
[UNIQUE|FULLTEXT|SPATIAL]INDEX|KEY[索引名称](字段名称)
[(长度)][asc|desc]
);
--在已经存在的表上创建索引
CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名称
ON 表明{字段名称
[(长度)][asc|desc]}
--以 id为普通索引
CREATE INDEX in_id ON test4(id);
ALTER TABLE tbl_name ADD [UNIQUI|FULLTEXT|SPECIAL]
(字段名称)[(字段名称)][ASC|DESC];
ALTER TABLE test4 ADD INDEX in_username(username);
--删除索引
DROP INDEX 索引名称 ON tbl_name
ALTER tbl_name DROP INDEX 索引名称
#第五十二课时
--管理数据库
--workbench
--通过web方式控制和操作MySQL数据库
--PHPmyadmin
--通过客户端管理MySQL
MySQL中常用的索引结构有:B+树索引和哈希索引两种。目前建表用的B+树索引就是BTREE索引。
在MySQL中,MyISAM和InnoDB两种存储引擎都不支持哈希索引。只有HEAP/MEMORY引擎才能显示支持哈希索引。
创建索引:
CREATE TABLE userInfo(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(3) NOT NULL COMMENT '用户名',
`age` int(10) NOT NULL COMMENT '年龄',
`addr` varchar(40) NOT NULL COMMENT '地址',
PRIMARY KEY (`id`),
KEY `ind_user_info_username` (`username`) USING BTREE, --此处普通索引
key 'ind_user_info_username_addr' ('username_addr') USING BTREE, --此处联合索引
unique key(uid) USINGBTREE, --此处唯一索引
key 'ind_user_info_addr' (addr(12)) USINGBTREE —-此处 addr列只创建了最左12个字符长度的部分索引
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';