我试图减less写入磁盘,并在我的社交网站,我有一个lastactivity表更新与()用户上次使用该网站的时间()。 目前是MyIsam:
id int(7)PRI auto_increment
lastactivity int(10)无符号
username varchar(25)
它目前有大约10万条logging。 如果mysql重新启动,我可以从主用户表中的最后login再次填充它。 这台机器有很多的备用内存,但是这个表经常被locking,我想是因为所有的更新,如果它是MEMORY表types会更好?
从内存运行总是比磁盘更快,唯一的缺点是在电源输出中会丢失数据。 但是,您声称如果出现这种情况,您可以重新生成数据。 所以,我同意你应该使用你的记忆,因为你有它的gobs。
这就是说,我记得Knuth曾经提到过的一些数据。 如果你正确地构造你的数据,那么根本不需要做任何计算。 智能数据比智能algorithm更好。
那么,看看如何重新构build您的数据库和/或应用程序以减less所需的locking量,可能会比较谨慎。
退后一步?
一定要知道在内存表中应用的限制,比如默认的索引types是HASH而不是BTREE。 使用这个表查看查询可能是一个好主意,特别是如果其中一些查询使用范围查询。 在后面的情况下,强制使用BTREE而不是默认的HASH来构build索引。