MySQL 索引的使用
Posted 两掺豆腐脑丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 索引的使用相关的知识,希望对你有一定的参考价值。
mysql 索引的使用(*)
– 切换数据库
use mybingschool;
DATABASE CHANGE;
– ALER 当需要修改数据表名或者修改数据表字段时,使用到 ALTER命令。
create table testalter_tbl(
i int ,
c CHAR(1),
d CHAR(1)
)CHARSET=utf8;
– 查看创建的表结构 columns (栏、条目)
show COLUMNs FROM testalter_tbl;
– 删除表字段为i的 DROP (删除)
ALTER TABLE testalter_tbl DROP i;
– 添加表字段i add
– alter(在后面) add命令格式:alter table 表名 add字段 类型 其他;
– FIRST 和AFTER 关键字可用于 ADD 与 MODIFY 子句,
– 如果想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。
– first (第一)添加到第一个 ADD (添加)
ALTER TABLE testalter_tbl ADD i int first;
– add after 添加在**之后
alter table testalter_tbl ADD a VARCHAR(20) AFTER c;
ALTER TABLE testalter_tbl ADD i INT AFTER c;
– 如果需要修改字段类型及名称, 可以在ALTER命令中使用 MODIFY 或 CHANGE 子句
– MODIFY (修改)
– 把字段 c 的类型从 CHAR(1) 改为 CHAR(10)
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
– CHANGE (更换改变)
– 把字段 i 从i 改为 j
ALTER TABLE testalter_tbl CHANGE i j BIGINT;
ALTER TABLE testalter_tbl CHANGE j j int;
– 修改表名 rename (改名)
alter table testalter_tbl rename to alter_tbl;
– 查看表结构
show COLUMNs FROM alter_tbl;
– nll空值 修改default的默认值
alter table alter_tbl modify d char(20);
alter table alter_tbl ALTER d set default '1000';
alter table alter_tbl ALTER a set default '500';
alter table alter_tbl alter a DROP DEFAULT;
–
– -- 索引 index
– -- MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
– -- 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。
– -- 拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。
– -- 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
– -- 创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
– -- 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
– -- 上面都在说使用索引的好处,但过多的使用索引将会造成滥用。
– -- 因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。
– -- 因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
– -- 建立索引会占用磁盘空间的索引文件。
– 查看表结构
show COLUMNs FROM alter_tbl;
show COLUMNs FROM mytbl;
– 直接创建索引(基本)
-- CREATE INDEX indexName ON table_name (column_name);
create index int_suoyin on alter_tbl(j);
create index char_suoyin on alter_tbl(c);
– 添加索引(修改表结构)
-- ALTER table tableName ADD INDEX indexName(columnName);
alter table alter_tbl add index varchar_suoyin(a);
– 建表时创建索引
create table mytbl(
id int not null,
uname VARCHAR(50) not null,
-- INDEX [indexName] (username(length))
INDEX une_suoyin (uname(10))
)CHARSET=utf8;
– 删除索引
DROP INDEX [indexname] on table_name;
DROP INDEX une_suoyin ON mytbl;
– 删除前,查看表结构 确定索引名
show index from alter_tbl;
drop index varchar_suoyin on alter_tbl;
– 对表呢添加索引
ALTER table alter_tbl add index (a);
alter table alter_tbl add index d_suoyin(d);
– ALTER 命令添加主键
ALTER TABLE alter_tbl MODIFY j INT NOT NULL;
– ALTER 命令删除主键
ALTER table alter_tbl drop primary key;
– 删除主键时只需指定PRIMARY KEY,但在删除索引时,必须知道索引名。
– 查看表结构
show COLUMNS from alter_tbl;
– 查看表索引信息
SHOW INDEX FROM alter_tbl;
-- SHOW INDEX FROM alter_tbl\\G;
SHOW INDEX FROM mytbl;
– 查询表
select * from alter_tbl;
– MySQL 临时表
以上是关于MySQL 索引的使用的主要内容,如果未能解决你的问题,请参考以下文章