每次呈现网页时,我需要增加一个计数器。
因为我每个事务只有一个写(基本上,在为同一个http请求递增我的计数器之后,我没有其他写可做),所以使用自动提交到False和手动提交不会有帮助。
不同的是,Mongodb漫不经心地写东西。
在将这些参数设置为my.cf之前,我试图让Mysql在将它们刷新到磁盘之前进行写操作,但这并没有帮助:
innodb_buffer_pool_size = 1G
innodb_flush_method=O_DIRECT
innodb_log_file_size=100M
innodb_change_buffering=all
innodb_thread_concurrency=8有办法让mysql写得更快吗?
发布于 2015-06-21 09:12:51
innodb_flush_log_at_trx_commit = 2胜利者:150倍快!在标准磁盘上(稍后将在SSD上试用)
发布于 2015-06-18 18:24:10
如果您所做的只是“每次呈现网页时增加一个计数器”,那么我建议您完全放弃数据库。将计数器完全保存在内存中(例如通过memcached),并使用cron作业每10分钟将其转储到磁盘,以保存更永久的记录。
如果您记录的不仅仅是一个计数器,并且希望使用数据库,请考虑使用MySQL MEMORY存储引擎(https://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html)。
CREATE TABLE t (i INT) ENGINE = MEMORY;该表将保存在内存中,因此比基于磁盘的表要快得多。如果需要永久的话,您只需要一个脚本就可以不时地将手动“刷新”到磁盘(例如mysqldump)。
https://stackoverflow.com/questions/30897504
复制相似问题