我想做大量的插入,但是有可能在一段时间后更新mysql。缓存的mysql插入 - 保留数据的完整性
例如,如果有作为
Update views_table SET views = views + 1 WHERE id = 12;
这样的查询难道是不可能的,也许存储该询问,直到观点已经上升到100,然后运行下面的,而不是从上面运行查询100次。
Update views_table SET views = views + 100 WHERE id = 12;
现在,让我们说完成,然后来了数据完整性的问题。比方说,有100个php文件打开,它们都将运行相同的查询。现在,除非增加缓存视图的锁定机制,否则多个文件可能具有相同的缓存视图值,因此可以说流程1可能有25个缓存视图,而php流程2可能有25个视图并处理3可能有27个来自文件的视图。现在让我们说过程3完成并将计数器增加到28.然后让我们说php过程是关于完成的,并且在过程3之后完成,这意味着计数器将被降回到26.
所以,你们有任何快速的解决方案,但也是数据安全的。
感谢
好的答案,但只是为了澄清:一个'LOW_PRIORITY'查询仍然'挂起',直到它可以运行(给予时间来读取和插入的确是,但不是当前进程),它明显不同于'例如INSERT DELAYED'(这里不能使用它,但是*会*将INSERT放入队列中,并且可以让你继续快乐的方式)。这里讨论的关于'LOW_PRIORITY'的队列已经是'等待访问'的进程。 – Wrikken 2011-03-28 22:03:08
哦好吧,那太好了......如果每秒有数千次更新,那么情况如何呢? – Vish 2011-03-29 10:26:00