跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

MySQL视图和索引,你真的懂了吗?

大家好,我是顺亿,今天我们来聊聊MySQL中的两个重要概念——视图和索引。

首先,什么是视图呢?简单来说,视图就像是一张虚拟的表格,它是由实际存在的表格通过查询语句生成的。视图的好处是,我们可以通过视图来筛选出我们需要的部分数据,隐藏掉不必要的信息,提高数据的安全性。

视图与数据表的区别

视图和表虽然很像,但它们还是有区别的。视图不是真实存在的数据,它只是定义了一个查询语句,当查询视图时,数据库会根据这个查询语句去查询实际的数据表。

视图的优点

  • 定制用户数据:不同用户对数据的需求不同,视图可以帮助我们为不同的用户定制不同的数据。
  • 简化数据操作:复杂的查询语句可以通过创建视图来简化。
  • 提高数据安全性:我们可以只授权用户访问视图,而不直接访问数据表,从而提高数据的安全性。
  • 共享所需数据:通过视图,我们可以共享数据库中的数据,而不需要每个用户都存储自己的数据副本。
  • 更改数据格式:通过视图,我们可以重新格式化检索出的数据。
  • 重用SQL语句:视图定义后,我们可以多次使用这个视图,而不需要每次都重新编写查询语句。

创建视图的语法

CREATE VIEW <视图名> AS 

接下来,我们来聊聊索引。索引就像是一本字典的索引,它可以帮助我们快速找到我们想要的数据。

什么是索引

索引是一种特殊的数据库结构,它由数据表中的一列或多列组合而成。通过索引,我们可以快速找到数据表中有某一特定值的记录。

索引的优点

  • 提高查询速度:这是使用索引最主要的原因。
  • 加速表与表之间的连接
  • 减少查询中分组和排序的时间

索引的缺点

  • 增加维护成本:创建和维护索引需要时间和资源。
  • 占用磁盘空间:索引需要占用额外的磁盘空间。
  • 降低数据维护速度:当对表中的数据进行增加、删除和修改时,索引也需要进行相应的更新。
  • 影响插入记录的速度:向有索引的表中插入记录时,数据库系统会按照索引进行排序,这样就降低了插入记录的速度。

何时不使用索引

  • 表记录太少
  • 经常增删改的表
  • 数据重复且分布均匀的表字段
  • 频繁更新的字段
  • where条件里用不到的字段

索引失效的情况

  • like以通配符%开头
  • 全表扫描比走索引查询的快
  • 字符串不加单引号
  • where中索引列使用了函数
  • where中索引列有运算
  • is null无法使用索引
  • 复合索引没有用到左列字段
  • 条件中有or,前面的列有索引,后面的列没有

索引分类

  • 普通索引:最基本的索引,没有任何限制。
  • 唯一索引:索引列的值必须唯一,但允许有空值。
  • 主键索引:一种特殊的唯一索引,一个表只能有一个主键。
  • 组合索引:在多个字段上创建的索引。
  • 全文索引:主要用来查找文本中的关键字。

好了,今天我们就聊到这里。希望这篇文章能帮助大家更好地理解MySQL视图和索引。如果你还有其他问题,欢迎在评论区留言。我是顺亿,我们下期再见!

更多精彩内容,请关注「趣航编程网」(www.vqhf.com)。

相关文章