多线程查询、修改Mysql表会有冲突吗?

来源:互联网 发布:网络安全工程师工资 编辑:程序博客网 时间:2024/05/19 07:27
我用的存储引擎是MyISAM,有多个连接会同时select这张表,但不会修改这张表,这样操作会不会有冲突,会不会锁表?
不会锁表,不会有冲突,
MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;
对 MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作;
MyISAM表的读操作与写操作之间,以及写操作之间是串行的,读操作是并行的。
http://bbs.csdn.net/topics/391063652


请教多线程操作同一个数据表时,怎么避免表死锁?
1通常来说,是多个线程将数据插入一个队列,然后有个专门的线程来根据队列中的数据对数据库操作,这样就不会有问题
由一个线程读写表, 其它线程则是处理数据
2用lock控制多线程操作队列,然后单独开一个线程写数据库操作 
http://bbs.csdn.net/topics/390027496


多线程操作同一个表会不会导致锁表?
不会有冲突的。不同的线程修改的数据记录都不一样,前提是使用的InnoDB存储引擎,InnoDB支持行锁,MyISAM不支持行锁
update操作时where的id不同,修改的是不同的记录

http://www.itpub.net/thread-460243-1-1.html






原创粉丝点击