mysql与sqlite在处理并发问题时的不同
来源:互联网 发布:数据库安全测试方法 编辑:程序博客网 时间:2024/06/10 05:06
先来说下mysql与sqlite运行机制的不同。
mysql是基于服务的,可以远程访问,还可以设置一些访问权限。
sqlite位于android系统的系统运行库层,是基于文件存储的。
谈到并发,就不得不说加锁的问题。
MySQL有三种锁的级别:页级、表级、行级。
表级:直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许
行级,:仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。
页级:表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。
直接通过sql语句就能够实现上述几种加锁模式,另外除了数据库本身,也可以在数据库的调用逻辑上使用加锁同步策略,这里不过多赘述。
sqlite既然是基于文件的,自然也就没有过于复杂的加锁机制了。
它没有提供复杂的锁定机制,无法内部管理多路并发下的数据操作同步问题,更谈不上优化,所以涉及到多路并发的情况,需要外部进行读写锁控制,否则SQLite会返回SQLITE_BUSY错误,以驳回相关请求。换句话说,只能在数据层面去控制并发。
0 0
- mysql与sqlite在处理并发问题时的不同
- SQLite的并发处理
- Android 中SQLite进行读写时,涉及的并发处理问题
- SQLite并发操作下的分析与处理,解决database is locked,以及多线程下执行事务等问题
- Android sqlite数据库并发访问问题处理
- MySQL与MariaDB功能对比 --- NULL在ALL/SOME中的处理的不同
- 解决网站使用sqlite时并发问题的一个经验
- sqlite并发写处理
- SQLite在多线程并发访问的应用
- 有关SQLite的并发问题。。。(C#)
- activeMQ在处理大量并发消息出现的问题
- mysql的并发处理机制
- 网站在不同的并发访问量级下Mysql的应用架构演变
- CCHTTPRequestAndroid() 与 curl处理方式不同的问题
- &与在&&的不同
- Entity Framework 处理MySQL,Oracle 并发问题
- 傲游在处理鼠标右键时与IE不同
- MySQL与SQLite的迁移
- 实战MySQL
- axure学习笔记
- eclipse 无法创建tomcat7.0的server
- secureCRT上传下载文件到阿里云Ubuntu服务器上
- 改变span中的字体方法
- mysql与sqlite在处理并发问题时的不同
- Coco
- myBatis入门(二)-mybatis工作流程
- 《大数据开发基础上》学习笔记
- PIP下载太慢的一种解决方式
- 关于for in 和 for之间的区别
- 20 Exception异常/File类
- python生成带有表格的图片
- hdu 1007 Quoit Design 平面上的最近点对 分治法+鸽笼原理