`
ubuntu.java
  • 浏览: 5628 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

mysql临时表使用的问题

阅读更多
最近为了缓解千万级数据表的频繁查询压力,采用了临时表,整个流程是:

1.CREATE TEMPORARY TABLE IF NOT EXISTS XXX ……
2.查询操作
3.DROP TEMPORARY TABLE XXX
简单那测试运行正常。

但是在正式使用过程中时不时会出现:table or view does not exist……,起初以为是CREATE TEMPORARY TABLE的过程出了问题,查询log后发现没有此异常,说明不是在CREATE TEMPORARY TABLE的问题。

百思不得其解,之后查询mysql手册:
引用
在创建表格时,您可以使用TEMPORARY关键词。只有在当前连接情况下,TEMPORARY表才是可见的。当连接关闭时,TEMPORARY表被自动取消。这意味着两个不同的连接可以使用相同的临时表名称,同时两个临时表不会互相冲突,也不与原有的同名的非临时表冲突。(原有的表被隐藏,直到临时表被取消时为止。)


恍然大悟,原来是整个流程的3步操作出了问题。
整个流程的3步操都是通过连接池来实现的,1,2,3三个操作在访问量小的时候很有可能使用的是连接池中的同一个连接,这时一切正常表面上看不出来任何问题。但是当访问量大的时候,这3个操作就很有可能就使用了不同的连接,这时就会抛出临时表不存在的异常。

解决办法:1,2,3三个操作采用同一个数据库连接。
0
0
分享到:
评论
1 楼 talin2010 2010-12-01  

相关推荐

    Mysql临时表使用说明

    Mysql临时表使用说明Mysql临时表使用说明

    mysql临时表用法分析【查询结果可存在临时表中】

    主要介绍了mysql临时表用法,结合实例形式分析了MySQL将查询结果存储在临时表中的相关操作技巧,需要的朋友可以参考下

    MYSQL 临时表用法总结

    老项目最近被吐槽性能不行,经排查发现mysql占用cpu过高,梳理流程发现一些经常被使用的字段需要多张表关联之后可获取,于是想到了临时表; 2.临时表用法总结 将正常的CREATE TABLE语句改为CREATE TEMPORARY TABLE...

    Mysql临时表和派生表

    mysql高级操作

    MySQL性能分析之临时表

    介绍 MySQL中 临时表 对性能的影响,挺精辟的,可以仔细读读!

    MySQL使用临时表加速查询的方法

    使用MySQL临时表,有时是可以加速查询的,下面就为您详细介绍使用MySQL临时表加速查询的方法。 把表的一个子集进行排序并创建MySQL临时表,有时能加速查询。它有助于避免多重排序操作,而且在其他方面还能简化优化器...

    pymysql通过读取mysql临时表数据更新或插入主表

    pymysql+mysql通过读取临时表数据更新或插入主表,原创手写已测可运行效果好。

    MySQL中的两种临时表

    外部临时表  通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为...这种内部表对用户来说是不可见的,但是通过EXPLAIN或者SHOW STATUS可以查看MYSQL是否使用了内部临时表用来帮助完成某个操作。内部临时表在

    longxuegang#MySQL5.7#241-临时表优化1

    1.背景MySQL包括两类临时表,一类是通过create temporary table创建的临时表,一类是在query过程中using temporary而创

    MySQL临时表那些事

    MySQL临时表那些事,该手册详述如何创建,使用临时表,以及一些注意事项

    SpringBoot 整合Mybatis 创建临时表

    SpringBoot 整合Mybatis 创建临时表

    MySQL临时表的简单用法介绍

    当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询。...

    Mysql临时表原理及创建方法解析

    主要介绍了Mysql临时表原理及创建方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    MySQL两种临时表的用法详解

    外部临时表 通过CREATE TEMPORARY TABLE 创建的临时表,这种临时...这种内部表对用户来说是不可见的,但是通过EXPLAIN或者SHOW STATUS可以查看MYSQL是否使用了内部临时表用来帮助完成某个操作。内部临时表在SQL语句的

    mysql复杂存储过程实例(游标、临时表、循环、递归)

    本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。

    深度解析MySQL 5.7之临时表空间

    临时表 临时表顾名思义,就是临时的,用完销毁掉的表。 数据既可以保存在临时的文件系统上,也可以保存在固定的磁盘文件系统上。 临时表有下面几种: ... 在MySQL里面没有这种临时表,必须利用会话级别的临时表

    Mysql 存储过程(输入,返回),函数,临时表

    Mysql 存储过程,函数,临时表 存储过程包括输入返回,可供项目中遇到难题的人解决一下,我曾为此费了好大精力,最后总结出来共大家分享

    浅谈MySQL临时表与派生表

    对于自动创建的临时表,由于内存临时表的性能更为优越,mysql总是首先使用内存临时表,而当内存临时表变得太大时,达到某个阈值的时候,内存临时表就转存为外存临时表。也就是说,外存临时表是内存临时表在存储空间...

Global site tag (gtag.js) - Google Analytics