2012-07-04 53 views
0

无论何时我们正在触发一个插入查询,那个瞬间该特定表被锁定一段时间。这个时间可以是一些微秒或几秒,取决于需要插入数据库的行。有没有什么办法可以管理mysql的等待时间

我正在为一所拥有超过一位用户的大学开发应用程序。

我照顾它,因为持续一段日子,我很googleing它,我得到了staticstics如下

10 simple read query = 1 simple write query 

的主要问题是notification,每当老师把一些更新,我通知学生只有那些学生会收到有兴趣的通知。所以有可能发生一个更新可能有10000个以上的通知,这肯定需要3-5秒(waiting time)。所以所有的读取都将在队列中。

那么有什么办法可以减少等待时间吗?

+0

这对你有帮助吗? ['睡'](http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_sleep) – diEcho

+0

我不认为它会帮助我。 – KuKu

回答

1

也许你可以使用InnoDB而不是MyISAM,因为前者具有行级锁定功能,而后者在写入时具有表级锁定功能。如果您使用InnoDB作为表引擎,则只有一行被锁定,但其他任何内容仍可能被查看。

+0

所以这意味着如果我插入10000+行并在读取请求之间来了,读取请求将执行并插入将继续..? – KuKu

+1

当然,为什么不呢?如果地方不同,巨大的网站不允许保存给用户,因为没有其他用户可以在一次保存期间访问该网站。 – feeela

相关问题