mysql视图能不能创建索引

mysql视图能不能创建索引

mysql视图不能创建索引。视图是一种虚拟存在的表,并不实际存在于数据库中,它是没有实际行和列的(行和列的数据来自于定义视图的查询中所使用的表);而索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,因此视图中不能创建索引,没有主键,也不能使用触发器。

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

mysql视图不能创建索引。

MySQL 视图(View)是一种虚拟存在的表,并不实际存在于数据库中,它是没有实际行和列的;行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。

数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。

而索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。本节将详细讲解索引的含义、作用和优缺点。

通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列。否则,数据库系统将读取每条记录的所有信息进行匹配。

因此:索引由数据表中的一列或多列组合而成,而视图是一种虚拟存在的表,没有实际行和列的;进而mysql视图不能创建索引。

扩展知识:mysql视图

mysql视图本质上就是语句,当你调用视图的时候数据库管理系统会先去找视图中封装的语句,先执行生成视图的语句,再在视图的基础上进行查询

视图的优点

视图与表在本质上虽然不相同,但视图经过定义以后,结构形式和表一样,可以进行查询、修改、更新和删除等操作。同时,视图具有如下优点:

1) 定制用户数据,聚焦特定的数据

在实际的应用过程中,不同的用户可能对不同的数据有不同的要求。

例如,当数据库同时存在时,如学生基本信息表、课程表和教师信息表等多种表同时存在时,可以根据需求让不同的用户使用各自的数据。学生查看修改自己基本信息的视图,安排课程人员查看修改课程表和教师信息的视图,教师查看学生信息和课程信息表的视图。

2) 简化数据操作

在使用查询时,很多时候要使用聚合函数,同时还要显示其他字段的信息,可能还需要关联到其他表,语句可能会很长,如果这个动作频繁发生的话,可以创建视图来简化操作。

3) 提高数据的安全性

视图是虚拟的,物理上是不存在的。可以只授予用户视图的权限,而不具体指定使用表的权限,来保护基础数据的安全。

4) 共享所需数据

通过使用视图,每个用户不必都定义和存储自己所需的数据,可以共享数据库中的数据,同样的数据只需要存储一次。

5) 更改数据格式

通过使用视图,可以重新格式化检索出的数据,并组织输出到其他应用程序中。

6) 重用 SQL 语句

视图提供的是对查询操作的封装,本身不包含数据,所呈现的数据是根据视图定义从基础表中检索出来的,如果基础表的数据新增或删除,视图呈现的也是更新后的数据。视图定义后,编写完所需的查询,可以方便地重用该视图。

要注意区别视图和数据表的本质,即视图是基于真实表的一张虚拟的表,其数据来源均建立在真实表的基础上。

使用视图的时候,还应该注意以下几点:

  • 创建视图需要足够的访问权限。

  • 创建视图的数目没有限制。

  • 视图可以嵌套,即从其他视图中检索数据的查询来创建视图。

  • 视图不能索引,也不能有关联的触发器、默认值或规则。

  • 视图可以和表一起使用。

  • 视图不包含数据,所以每次使用视图时,都必须执行查询中所需的任何一个检索操作。如果用多个连接和过滤条件创建了复杂的视图或嵌套了视图,可能会发现系统运行性能下降得十分严重。因此,在部署大量视图应用时,应该进行系统测试。

关于“mysql视图能不能创建索引”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

文章标题:mysql视图能不能创建索引,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/26638

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月18日 下午10:37
下一篇 2022年9月18日 下午10:38

相关推荐

  • mysql增加的语句是什么

    增加语句有:1、CREATE DATABASE语句,用于增加数据库,语法“CREATE DATABASE 数据库名;”;2、CREATE TABLE语句,用于增加数据表,语法“CREATE TABLE 表名(列名 类型);”;3、ALTER TABLE语句,可向数据表添加字段,语法“ALTER TA…

    2022年9月21日
    58700
  • 怎么搭建一个vue项目

    一、环境准备 1、安装node.js 2、检查node.js版本 查看版本的两种方式 1|node -v 2|node -version 出现版本号则说明安装成功(最新的以官网为准) 3、为了提高我们的效率,可以使用淘宝的镜像源 输入:npm install -g cnpm –regis…

    2022年9月21日
    84600
  • 电脑0x0000001a蓝屏代码怎么解决

    解决方法: 名列前茅种方法: 1、通过蓝屏代码提示,我们分析出这个蓝屏出错代码的缘由是: 代码:0x0000001a 原因:指定的磁盘或磁盘无法存取。 2、ntoskrnl.exe文件是N卡(显卡)的驱动程序文件。如果之前更新过了显卡的驱动程序,那就是它惹的祸。不妨先回滚驱动程序。 3、不行,再找到…

    2022年9月16日
    1.9K00
  • windows谷歌浏览器黑屏如何解决

    解决方法: 1、右击浏览器,点击“快捷方式”。 2、随后将代码“–disable-gpu –disable-software-rasterize”黏贴到“目标”中。 3、随后打开浏览器,点击右上角的“三个点”再点击“设置”。 4、点击左侧的系统既可看到“使用硬件加速模式”的开…

    2022年9月8日
    63700
  • html5中preload的概念是什么

    在html5中,preload是“预加载”的意思,是用于规定是否在页面加载后载入音频或者视频,如果设置au较好lay属性则会忽略该属性,并且preload属性是html5中的新属性,语法为“<element preload=”auto|metadata|none”&gt…

    2022年9月2日
    1.2K00
  • bootstrap如何清除浮动的样式

    在bootstrap中,可以利用“.clearfix”辅助类来清除浮动的样式,辅助类是bootstrap提供的一组工具类,用于辅助项目的开发,只需要给需要清除浮动的元素设置类名为“.clearfix”即可,语法为“<元素 class=”clearfix”>”。 本…

    2022年9月21日
    56700
  • mysql的安装路径如何查看

    查看方法:1、鼠标右击“计算机”图标,在打开的菜单中点击“管理”;2、依次点击“服务和应用程序”-“服务”;3、在右侧服务列表中,找到mysql服务;4、选中mysql服务,点击鼠标右键,在打开的菜单中选择“属性”;5、在“mysql属性”弹窗中,查看“可执行文件路径”选项的值即可,该选项的值就是M…

    2022年9月24日
    2.0K00
  • temp文件夹全删光应该怎么做

    temp文件夹能全部删光;temp文件是系统中的临时文件夹,用于收藏浏览网页的临时文件、编辑文件等等,文件中的内容都可以删除,有些删不掉是因为有的程序正在使用,可以把后台的所有程序都关掉,即可删除文件夹中的指定内容了。 temp文件夹能不能全删光 能全删光。 temp(临时文件夹temporary)…

    2022年9月13日
    6.6K00
  • windows驱动精灵WiFi驱动怎么安装

    驱动精灵WiFi驱动安装方法: 1、打开驱动精灵进入主页,点击右下角的“百宝箱”。 2、在百宝箱中选择“驱动管理”。 3、在设备中找到自己的“网卡驱动”。 4、如果没有的就点击“安装”,如果已安装过的点击“升级”即可。 以上就是关于“windows驱动精灵WiFi驱动怎么安装”这篇文章的内容,相信大…

    2022年9月13日
    61500
  • 怎么用Python实现自动化处理每月考勤缺卡数据

    一、效果展示 1.实现效果 首先来看下实现效果。 大体实现步骤如下: 步骤1:在D盘中新建“每月缺卡数据处理“文件夹(已在代码中固定死了,必须建该文件夹)。 步骤2:把处理考勤缺失的exe文件和原始数据文件放到step1新建的文件夹中。 步骤3:点击exe文件,会自动出来csv结果文件,具体格式如下…

    2022年9月21日
    82800
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部