MySQL的视图与索引

MySQL视图

什么是视图?

视图是一个虚拟表,内容由查询定义。
视图中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中。

视图的特点:

  • 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
  • 视图是由基本表(实表)长生的表(虚表)。
  • 视图的建立和删除不影响基本表。
  • 对视图内容的更新(添加、删除、修改)直接影响基本表。
  • 当视图来自多个基本表时,不允许添加和删除数据。

    创建视图语法:

 CREATE VIEW 视图名 AS 查询语句

视图名不能和表名以及其他视图名重合。

MySQL索引

索引的特点:
索引类似于书的目录,能够在一定程度上快速的进行数据定位。
索引的创建有利有弊,创建索引可以提高查询速度,但过多的创建索引则会占据许多的磁盘空间。

以下情况适合创建索引:

  • 经常被查询的字段,即在WHERE子句中出现的字段。
  • 在分组的字段,即在GROUP BY子句中出现的字段。
  • 存在依赖关系的子表和父表之间的联合查询,即主键和外键字段。
  • 设置唯一完整性约束的字段。

以下情况不适合创建字段:

  • 在查询中很少使用的字段。
  • 拥有许多重复值的字段。

1.普通索引

  • 创建表时创建索引
 CREATE TABLE 表名(
    字段  数据类型,
    字段  数据类型,
    INDEX  索引名(字段 ) 
);
  • 在已存在的表上创建普通索引
CREATE INDEX 索引名 ON 表名(字段)

2.唯一索引

  • 创建表时创建索引
 CREATE TABLE 表名(
    字段  数据类型,
    字段  数据类型,
    UNIQUE INDEX  索引名(字段 ) 
);
  • 在已存在的表上创建普通索引
CREATE UNIQUE INDEX 索引名 ON 表名(字段)

3.全文索引

  • 创建表时创建索引
 CREATE TABLE 表名(
    字段  数据类型,
    字段  数据类型,
    FULLTEXT INDEX  索引名(字段 ) 
);
  • 在已存在的表上创建普通索引
CREATE FULLTEXT INDEX 索引名 ON 表名(字段)

4.多列索引

  • 创建表时创建索引
 CREATE TABLE 表名(
    字段  数据类型,
    字段  数据类型,
    INDEX  索引名(字段),索引名(字段).. 
);
  • 在已存在的表上创建普通索引
CREATE INDEX 索引名 
ON 表名(字段),
表名(字段),
表名(字段),

你可能感兴趣的:(资料整理)