我是程序员,不是 DBA。要温柔 :)
概述
- InnoDB、MySQL
- mod_perl 脚本,持久连接
- 成千上万的用户每 20 秒调用一次脚本
问题
- 高磁盘 IO(大概是由更新引起的[?])会减慢一切,造成巨大的瓶颈。
查询
- UPDATE [单表] SET refreshTime 到当前时间戳,在 WHERE 子句中有两个相同的表检查
- SELECT COUNT(*) [四表连接,带索引],以及 WHERE 子句中的一堆 AND(仍然很简单)
- SELECT a,b [四个表连接,相同的四个表],以及 WHERE 子句中的一堆 AND(也很简单)
查询缓存开启。
解决方案?
- 我不是 DBA,但我怀疑 RAM 中可能有一个表,它会定期(每 10 秒?)更新到磁盘上,并且在发生灾难性故障时,会自动从磁盘表中填充 RAM 表重新启动后,但我不知道这是否真的可行,它是否是最佳解决方案或有哪些其他选择。
- 有什么想法或建议吗?再说一次,我是一名程序员,所以如果有人认识这样做的人,或者可以向我指出非常具体的资源,我将不胜感激。
~~~~~~~
CREATE TABLE `openInvitations` (
`id` int(99) NOT NULL auto_increment,
`createTime` timestamp NULL default NULL,
`repAcceptTime` timestamp NULL default NULL,
`rep_id` varchar(64) NOT NULL default '',
`repRefreshTime` timestamp NULL default NULL,
`customer_macAddr` varchar(14) NOT NULL default …
Run Code Online (Sandbox Code Playgroud)