美文网首页
Mysql 临时表 视图

Mysql 临时表 视图

作者: 黄靠谱 | 来源:发表于2019-01-22 16:35 被阅读32次

参考

https://www.jianshu.com/p/01b9f028d9c7

临时表的特性

  • 临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间,也可以在当前连接未关闭时,手动删除临时表。
  • 不同连接可以各自创建名字一样的临时表,不会相互冲突,这点不同于 Memory的引擎表
  • 你应该测试临时表看看它们是否真的比对大量数据库运行查询快。如果数据很好地索引,临时表可能一点不快。
  • 临时表默认的存储引擎是Innodb,数据存储在磁盘里面,且不会使用索引,即使该列在原表中有索引也不会使用

使用场景:临时表主要用于对大数据量的表上作一个子集,提高查询效率。普通临时表,从大表中捞取部分的数据,可以在一个连接内重复使用,提速

CREATE TEMPORARY TABLE user_tem as select * from user where id<200;
DROP TEMPORARY TABLE IF EXISTS temp_tb;

视图

实现视图,优化器有2种选择:临时表或者合并算法(MERGE),这是由生成视图的SQL决定的

视图本身并不存储数据,只是存储了一段待执行的sql语句而已,查询视图的时候,仍然会访问原表去查询,所以查询性能上并不能提升,更多的是简化Sql的复杂性、安全控制的考虑。如果提升性能的话,临时表可能是更好的选择。

视图的优点:

  1. 视图可以简化应用上层的操作,让应用更专注于其所关心的数据。把一个多表关联的复杂SQL封装成一个view,直接查询view里面的字段即可,不再需要写一坨sql了。
  2. 其次,视图能够对敏感数据提供安全保护,比如:对不同的用户定义不同的视图,可以使敏感数据不出现在不应该看到这些数据的用户视图上;也可以使用视图实现基于列的权限控制,而不需要真正的在数据库中创建列权限。
  3. 再者,视图可以方便系统运维,比如:在重构schema的时候使用视图,使得在修改视图底层表结构的时候,应用代码还可以继续运行不报错。

相关文章

  • Mysql 临时表 视图

    参考 https://www.jianshu.com/p/01b9f028d9c7 临时表的特性 临时表只在当前连...

  • mysq临时表

    MySQL 临时表 MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接...

  • 数据库

    一、MySQL中视图与表的区别 1.1 MySQL中视图和表的区别以及联系 视图是已经编译好的SQL语句,是基于S...

  • MySQL的视图

    MySQL的视图 创建基础表 视图的测试 视图的分类 单源表视图:视图的数据可以只取自一个基本表的部分行、列,这样...

  • MySQL 临时表

    临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。 使用PHP脚本来创建MySQL临时表...

  • mysql 临时表

    EXPLAIN 执行计划中 Extra中有包含using temptable的话就会创建临时表。

  • MYSQL临时表

    1.简介: 用于临时存储大量数据子集的查询结果,经行临时存储以便下一步处理; 相对于执行若干次查询操作每次经行SQ...

  • MySQL临时表

    临时表在使用上的几个特点: 建表语法 create temporary table ...; 一个临时表只能被创...

  • 利用查询结果创建表和视图

    创建表 CREATE table (表名) ASselect... 可以用于创建临时表 创建视图 CREATE ...

  • 视图

    视图1,虚拟表,mysql5.1版本出现的特性,是通过表动态的生成的数据。创建视图CREATE VIEW <视图名...

网友评论

      本文标题:Mysql 临时表 视图

      本文链接:https://www.haomeiwen.com/subject/ktcrjqtx.html