mysql 索引和事务视图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 索引和事务视图相关的知识,希望对你有一定的参考价值。
mysql索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度,数据库索引就好比好比是一本书全面的目录。
索引分5类
- 普通索引,这是最基本的索引类型,而且他没有唯一性之类的限制。
- 唯一性索引,这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值只能出现一次,即必须唯一。
- 主键索引,主键是一种唯一性索引,该索引要求主键中的每个值都唯一,不允许为空。
- 全文索引,索引类型为FULLTEXT,全文索引可以在CHAR、VARCHAR或者TEXT类型的列上创建。
- 单列索引和多列索引,索引可以在单列上创建的索引,也可以在多列上创建的索引。多列索引可以区分其中一列可能有相同值的行。
创建索引方法
1.创建普通索引,命令格式是:
CREATE INDEX <索引的名字> ON tablename (列的列表);
2.创建唯一索引,命令格式是:
CREATE UNIQUE INDEX <索引名字>
ON tablename(列的列表);
3.创建主键索引,有两种方式,一种是在创建表的同时创建主键,主键索引自动创建,命令格式如下:
CREATE TABLE tablename ([....],PRIMARY KEY(列的列表));
另一种是已经创建了表,没有指定主键,然后修改表加入主键,主键索引会自动创建,命令格式如下:
ALTER TABLE tablename ADD PRIMARY KEY(列的列表);
4.创建表示指定或修改表时指定全文索引,命令格式如下:
CREATE TABLE 表名 (列名 TEXT,FULLTEXT(列名));
5.创建多列索引,命令格式如下:
CREATE INDEX 多列索引名字 ON 列名_列名;
6.查询索引:
SHOW INDEX FROM 表名 G;
key_name 对应的是索引名字。Non_unique 对应值是1,表示不是唯一性索引,对应值为0,表示是唯一性索引。
7.删除索引:
DROP INDEX 索引名 from 表名;
事务:一组操作共同执行或者都不执行,结果保持一致。
事务的四大特性:
- 原子性:不可分割,视为一个整体。
- 一致性:前后结果保持一致。
- 隔离性:对数据进行修改的所有并发事务是彼此隔离的,表示事务是独立的,不应以任何方式依赖或影响其他事务。
- 持久性:一旦执行成功,不可逆转,数据永久变更。
Mysql中使用命令控制事务需要用到3个命令:
- begin :表示开始一个事务,后面会有多条数据库操作语句执行。
- commit:表示提交一个事务,对应前面的begin操作,他们之间的数据库操作语句一起完成。
- rollback:表示回滚一个事务,在begin和commit之间,如果某一个数据库操作语句出现错误,执行rollback回滚,数据库回到begin之前的状态。
视图:数据库中的虚拟表,一张或者多表中的数据给不同权限用户提供访问。
1.创建一个查询结果的视图:
CREATE VIEW 视图名 AS SELECT * FROM 表名 条件(where score>80);
2.查看视图:
SELECT * FROM 视图名;
3.删除一个视图:
DROP VIEW IF EXISTS 视图名;
IF EXISTS 参数指判断视图是否存在,如果存在则执行,不存在则不执行。
以上是关于mysql 索引和事务视图的主要内容,如果未能解决你的问题,请参考以下文章