Mysql 5.6
在多线程,高并发情况下有下述情况,可能出现什么问题?表:
Table test
(id,xx,yy);
 PKThread1(线程1)insert into test (1,'xx','yy');
insert into test (2,'xx','yy');
insert into test (3,'xx','yy');
...
insert into test (50,'xx','yy');----------------------------------------Thread2 (线程2)insert into test (50,'xx','yy');
insert into test (49,'xx','yy');
insert into test (48,'xx','yy');
...
insert into test (1,'xx','yy');以上,求指导,求扫盲。

解决方案 »

  1.   

    如果是innodb 则应该结果肯定是50记录被插入。
      

  2.   


    首先,谢谢二位。
    我表达的很不明确,重述如下:
    mysql 5.6 InnoDB引擎
    现有如下场景:
    某一时间内,指定的表会被多个线程操作,每个线程都会更新表中的一部分数据。更新哪一部分数据,由用户的选择决定。就线程安全或数据库的角度,可能会出现什么问题。当时回答这个问题之前,聊到了尽量少的锁表,可以提高性能。
      

  3.   

    innoDb貌似是行锁定吧
    你这样子的插入方法应该是插入了五十条数据吧
    有大规模插入的时候还是用myisam吧!效率应该会高很多!
      

  4.   

    这个
    数据在 增加删除修改的时候肯定要加锁的
    你如果在程序在哪里只是一味的 insert
    它只不过是把数据全部抛给了 mysql 引擎
    让mysql来执行 插入工作,你的线程可能都已经走完了,那边数据还没插入进去呢 也是有可能的吧