mysql 索引和事务、视图

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度,数据库索引就好比好比是一本书全面的目录。

索引分5类

  1. 普通索引,这是最基本的索引类型,而且他没有唯一性之类的限制。
  2. 唯一性索引,这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值只能出现一次,即必须唯一。
  3. 主键索引,主键是一种唯一性索引,该索引要求主键中的每个值都唯一,不允许为空。
  4. 全文索引,索引类型为FULLTEXT,全文索引可以在CHAR、VARCHAR或者TEXT类型的列上创建。
  5. 单列索引和多列索引,索引可以在单列上创建的索引,也可以在多列上创建的索引。多列索引可以区分其中一列可能有相同值的行。

    创建索引方法

    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 表名;

事务:一组操作共同执行或者都不执行,结果保持一致。

事务的四大特性:

  1. 原子性:不可分割,视为一个整体。
  2. 一致性:前后结果保持一致。
  3. 隔离性:对数据进行修改的所有并发事务是彼此隔离的,表示事务是独立的,不应以任何方式依赖或影响其他事务。
  4. 持久性:一旦执行成功,不可逆转,数据永久变更。
    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 参数指判断视图是否存在,如果存在则执行,不存在则不执行。

猜你喜欢

转载自blog.51cto.com/13777111/2165500