我在InnoDB表上运行我的网站,到目前为止工作得非常好。现在我想知道我的网站上实时发生了什么,所以我将每个网页浏览(页面,引用,IP,主机名等)存储在InnoDB表中。每秒大约有100个插入,当我浏览日志时,这个表只会被读取一次。
我每分钟用一个去除旧物品的cron清理掉桌子。这平均在该表中留下大约35.000行,大小约为5MB。
如果我将InnoDB表转移到MEMORY表,在服务器上会更容易吗?据我所知,这会节省很多磁盘IO吗?重新启动Mysql会导致数据丢失,但这在我的情况下并不重要。
问题:在我的情况下,你会推荐InnoDB表上的Memory表吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
请优化您的innodb设置:
只要您已将InnoDB配置为使用足够的内存来保存整个表(使用innodb_buffer_pool_size),并且同一服务器上的其他InnoDB表没有过大的压力,数据将保留在内存中。如果您关注写入性能(并再次禁止使用同一系统),可以通过设置innodb_flush_log_at_trx_commit = 0并禁用二进制日志记录来降低持久性,从而大幅提高写入性能。
使用临时表的任何类型的触发器都将是一个混乱的维护,并且不会在临时表上给你任何事务性的好处。
您可以在此处找到更多详细信息: http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit