我用的存储引擎是MyISAM,有多个连接会同时select这张表,但不会修改这张表,这样操作会不会有冲突,会不会锁表?
不会锁表,不会有冲突,
MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;
对 MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作;
MyISAM表的读操作与写操作之间,以及写操作之间是串行的,读操作是并行的。
请教多线程操作同一个数据表时,怎么避免表死锁?
1通常来说,是多个线程将数据插入一个队列,然后有个专门的线程来根据队列中的数据对数据库操作,这样就不会有问题
由一个线程读写表, 其它线程则是处理数据
2用lock控制多线程操作队列,然后单独开一个线程写数据库操作
http://bbs.csdn.net/topics/390027496
多线程操作同一个表会不会导致锁表?
不会有冲突的。不同的线程修改的数据记录都不一样,前提是使用的InnoDB存储引擎,InnoDB支持行锁,MyISAM不支持行锁
update操作时where的id不同,修改的是不同的记录
mysql 单表 多线程 mysql多线程写入会锁表吗
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
ls的时候grep
一、背景最近在写一个私有化部署脚本的时候频繁的使用了ls和grep的组合,但是插件ShellCheck却一直在给我标黄,我这该死的洁癖终于在今天受不了了,这个使用了这么多年的好搭档怎么就那么不讨喜呢! 二、ShellCheck的规范很明显,提示告诉我们不要使用ls|grep的搭配,建议我们使用一个通配符或者带有条件的循环。。。一个ls都有这么多讲究,我们来看
ls的时候grep grep 与条件 shell 换行符 shell 目录下文件名放入循环 git