最近遇到一个很严重的问题:
一个网站,他的日流量几十万,晚上12点是在线高峰期,也是数据读取插入的高峰期。
问题出在几个表的数据插入顺序上,形象的描述是:
0秒时,往数据库插入一条记录:A
1秒时,再往数据库插入一条记录:B而当我查看id和插入时间时发现这样一个问题:
数据B比数据A先入库!!!!!
由此引发了很多的问题。请问我改如何优化程序或数据库?

解决方案 »

  1.   

    插入B之前检测数据A是否存在
    不过对于mysql的性能,这样大批量的插入数据,他会抗不住的
      

  2.   

    如果相隔 1 s 的话,应该还问题不大啊。如果是你的网页同时提交的话,要看一下你的WEB服务的提交情况了。 你是如何确认 B 是在 A 之后提交的呢?
      

  3.   

    你的那个时间字段用的什么类型?datetime的话只能精确到秒,如果两个记录插入时间的间隔是在1秒以内的话,这2个记录的保存时间就是一样的,程序取出来以后就会有顺序问题。
    解决这个问题有2种方法
    1,将datetime换为data(这样程序从数据库中取得时候可能会有问题)
    2,按id排序,id 是准确的顺序哦~~