欢迎您,零度科技专业海外服务器租用
公司电话: 24小时电话: 

当前位置:首页>网站建设教程>PHP教程

目录导航

mysql 使用虚拟表(内存表)的方法

台湾游戏服务器 发布于 2013-08-16  

PHP教程

一、mysql临时表简要说明
1、什么是临时表
临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作。 临时表的数据和表结构都储存在内存之中,退出时,其所占的空间会自动被释放。
2、创建临时表
(1)定义字段
CREATE TEMPORARY TABLE tmp_table (        name VARCHAR(10) NOT NULL,        value INTEGER NOT NULL)     (2)直接将查询结果导入临时表
CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name
3、查询临时表
select * from tmp_table
4、删除临时表
drop table tmp_table

二、临时表的应用
当工作在十分大的表上运行时,在实际操作中你可能会需要运行很多的相关查询,来获的一个大量数据的小的子集。较好的办法,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表,然后对这些表运行查询。
1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。
2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。
3)、临时表默认的是MyISAM,但是可以修改。
4)、可以把一些经常访问的数据放到临时表中,这样访问时会快一些,因为数据是在服务器内存中,另外每次查询的时候,数据库都需要生成一些临时数据在临时表里

三、临时表使用注意事项:
(1)临时表只在当前连接可见,当这个连接关闭的时候,会自动drop。这就意味着你可以在两个不同的连接里使用相同的临时表名,并且相互不会 冲突,或者使用 已经存在的表,但不是临时表的表名。(当这个临时表存在的时候,存在的表被隐藏了,如果临时表被drop,存在的表就可见了)。
2、临时表只能用在 memory,myisam,merge,或者innodb引擎。
3、临时表不支持mysql cluster(簇)。
4、在同一个query语句中,你只能查找一次临时表。例如:下面的就不可用
mysql> SELECT * FROM temp_table, temp_table AS t2;
ERROR 1137: Can't reopen table: 'temp_table'
如果在一个存储函数里,你用不同的别名查找一个临时表多次,或者在这个存储函数里用不同的语句查找,这个错误都会发生。
5、show tables 语句不会列举临时表,但是会列出内存表
6、你不能用rename来重命名一个临时表。但是,你可以alter table代替
mysql>ALTER TABLE orig_name RENAME new_name;

到零度科技查看原文:http://www.ldisp.com/a/php/2013/1757.shtml

上一篇:php判断访客使用的手机还是电脑的方法
下一篇:Discuz! 经典加密解密函数

 
了解零度?

零度科技主营全球服务器租用,如果您有服务器租用需求请联系

海外服务器租用

推荐香港、美国、韩国。提供站群服务器、高防服务器租用

海外特价服务器

关注零度特价服务器频道,了解全球特价服务器。

0

业务咨询

    技术服务

      特价活动
        全站搜索
        热门搜索:
        会员
        0通知
        客服
        0特价
        搜索
        TOP
        香港高防服务器,远程桌面,韩国服务器,nginx,反向代理