MYSQL临时表创建索引

DROP TEMPORARY TABLE IF EXISTS tmp_record_t2;
CREATE TEMPORARY TABLE tmp_record_t2
(
consumption_id INT(11) UNSIGNED NOT NULL,-- 店铺ID
created_org INT,
return_money DECIMAL(11,2),-- 退菜金额
cash DECIMAL(11,2),-- 现金
member_card DECIMAL(11,2),-- 会员卡
bank_card DECIMAL(11,2),-- 银行卡
credit DECIMAL(11,2),-- 挂账
free DECIMAL(11,2),-- 免??
ticket DECIMAL(11,2),-- 票券
foregift DECIMAL(11,2), -- 订金
wxzf DECIMAL(11,2), -- 微信支付
KEY pk(consumption_id) -- 创建索引,这个在临时表关联的时候非常重要,可以提高速度10倍
)ENGINE=MEMORY DEFAULT CHARSET=utf8 ;

tablestr2为动态的语句,将结果插入到临时表

SET @exe_sql = CONCAT(‘INSERT INTO tmp_record_t2 ‘,@tablestr2);
PREPARE stmt FROM @exe_sql ;
EXECUTE stmt ;

临时表默认的方式是 MyISAM

但是 MEMORY比MyISAM快大概20%。 所以指定MEMORY方式

参考:http://wenku.baidu.com/link?url=h1rkLZdfavLLboTr9jph_l5MGcxyj5_E9f2tXss-l8ZWCvlvHIOuqu5N1qlvfwwdctDYQ7FqY9G7iZwQXV78oK0rorE7DTXIEwna3Dp5aqK

时间: 2024-10-26 10:02:57

MYSQL临时表创建索引的相关文章

查看谷歌浏览器保存的本地密码,临时表创建索引

查看谷歌浏览器保存的本地密码 chrome://chrome/settings/passwords 点击显示 -----为临时表创建聚族索引,和非聚族索引 create clustered index #table_index1 on #table (empid asc ) create nonclustered index #table_index2 on #table (Salary) include (Department,empid ) ------

MySQL优化--创建索引,以及怎样索引才会生效 (03)

1. 创建索引 (看这里) 2.索引在什么情况下才会起作用(重点)

MySQL临时表创建

和SQL SERVER 创建临时表不同 不能直接写 Create table #Test_Table 而是需要在 Create 和 table 之间 加入 TEMPORARY(temporary<临时>) 关键字 CREATE TEMPORARY TABLE TEST_TABLE ( NAME VARCHAR(10) NOT NULL, AGE INTEGER NOT NULL ) 临时表将在你连接MySQL期间存在.当你断开时,MySQL将自动删除表并释放所用的空间.当然你可以在仍然连接的时

sqlserver_给临时表创建索引

1.创建一个临时表: CREATE TABLE #COMMENT ( score varchar(10), realOrNOT varchar(10), Reason varchar(10), rid varchar(10), dateline datetime ) 2.给临时表增加一个索引 CREATE NONCLUSTERED INDEX IDX_tme ON TEMPDB.DBO. #COMMENT (rid) INCLUDE (score,realOrNOT,Reason) 这个好处是遇

mysql 添加索引 mysql 如何创建索引

1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 4.添加FULLTEX

Mysql中的索引

众所周知,索引能够加快查询的速度,类似看书的时候先查目录之后再翻到具体那一页. 一.聚集索引和非聚集索引 1.聚集索引 聚集索引一张表只能存在一个. 聚集索引是物理上连续的(如果数据结构是btree的话,则数据直接存在叶子节点上),所以查询一个范围的数据会相当快. 2. 非聚集索引 非聚集索引一张表可以存在抖个. 非聚集索引在逻辑上是连续的(如果数据结构是btree的话,则叶子节点上存的的数据的位置信息),所以 mysql中的innodb引擎支持聚集索引,在mysql中主键索引就是聚集索引. M

SQL语句-创建索引

  语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100GO USE 库名GOIF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引DROP INDEX TEST.IX_TEST_TNAME--如果存在则删除 --创建索引CREATE NONCLUSTERED INDEX IX_TEST_TNAME

【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)

原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_log分析 4分库分表 5子查询优化 二数据转移 21插入数据 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时解决了这一危机.它通过降低数据的安全性,减少对事务

一条sql语句引发mysql不停创建临时表的问题解决..coping to tmp table on desk

(不懂临时表的先看 MySQL临时表 ) 首先,临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间.因此在不同的连接中可以创建同名的临时表,并且操作属于本连接的临时表. 创建临时表的语法与创建表语法类似,不同之处是增加关键字TEMPORARY 临时表主要用于对大数据量的表上作一个子集,提高查询效率.但是当语句写得有问题则可能会造成不断的创建的临时表,导致磁盘I/O利用率过高. 我之前写了一个存储过程,里面有一条语句,刚开始用了group by ..having,如下 用e