论坛首页 综合技术论坛

MySQL的经典用法(十一)----临时表与内存表

浏览 16327 次
精华帖 (1) :: 良好帖 (2) :: 新手帖 (1) :: 隐藏帖 (2)
作者 正文
   发表时间:2010-12-19  
mysql5.5性能优化-内存表
内存表分为2种,但共同点是,重起数据库以后,内存中的数据全部丢失,内存表的功能有部分的限制,有些属性不能像正常表一样使用,所以请大家使用的时候谨慎参照官方文档.下面只是抛砖引玉.
1.临时表:表建在内存里,数据在内存里
2.内存表:表建在磁盘里,数据在内存里
其中包括2个重要的参数
[mysqld]
# 内存表容量
max_heap_table_size=1024M
# 临时表容量
tmp_table_size=1024M

建立内存表的时候,在5.5里,需要指定表的引擎类型 ENGINE=MEMORY
CREATE TABLE coldtest_vardata (
  Id int(11) AUTO_INCREMENT,
  name varchar(255)
) ENGINE=MEMORY DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

临时表
create temporary table tmp1(id int not null);

其他常用参数
# skip hostname,just use ip
skip-name-resolve

# auto start event
event_scheduler=1
   发表时间:2010-12-20  
# skip hostname,just use ip
skip-name-resolve


# auto start event
event scheduler=1

麻烦请教下 这两句话什么意思!~谢啦
0 请登录后投票
   发表时间:2010-12-21  
ttl1118 写道
# skip hostname,just use ip
skip-name-resolve


# auto start event
event scheduler=1

麻烦请教下 这两句话什么意思!~谢啦

skip-name-resolve
mysql5.5有个小BUG,设置这个以后,才能远程IP访问
event scheduler=1
mysql启动的时候,启动event
0 请登录后投票
   发表时间:2010-12-22  
有没有办法,定期把内存表里的东西同步到硬盘上?
0 请登录后投票
   发表时间:2010-12-25  
hardPass 写道
有没有办法,定期把内存表里的东西同步到硬盘上?

当然有了 ,使用 event实现定时器功能
使用存储过程和游标,实现临时表的数据查询,然后持久化到磁盘上
0 请登录后投票
   发表时间:2010-12-28  
85977328 写道
hardPass 写道
有没有办法,定期把内存表里的东西同步到硬盘上?

当然有了 ,使用 event实现定时器功能
使用存储过程和游标,实现临时表的数据查询,然后持久化到磁盘上

how about trigger?
0 请登录后投票
   发表时间:2010-12-28  
trigger应该也是可以的,但mis中一般不推荐使用trigger.严重影响性能.使用trigger需要注意数据库关闭后,再次启动,初始加载数据到内存表和临时表中的问题.
0 请登录后投票
   发表时间:2011-01-08  
处理大表,最麻烦的。。。
0 请登录后投票
   发表时间:2011-01-18  
对于常量数据表(不知这样称呼对不对)
也就是系统的一些定量保存在数据库中, 但可以动态更新(比较少)
应该使用哪种引擎呢
Memery应该不错, 但是怎样初始化这个内存表呢
0 请登录后投票
   发表时间:2011-01-18  
可以把常量写在一个固定表里,然后启动的时候,把里面所有数据都加载倒内存表中。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics