社区
MS-SQL Server
帖子详情
数据量过大时 使用事务会锁住表 其他用户无法操作 求解决方案
Hi幸福来敲门
2012-09-13 11:56:37
1.用户多,最少百万级
2.数据量庞大,百万级数据量搜索
3.操作多,同时或时间很短出现两个用户对表操作,另一个用户无法操作
4.在一个用户执行事务只要实现其他用户对表的插入和更新就行
5.我恨啊 CSDN有Bug 刚刚我在发帖的时候 选其他数据库 [其他数据库开发/MySQL/Postgresql] 发的帖子看不成 老是报 404
可是我的100分就这样被扣了 没分了 相信大家不会介意的 谢谢
...全文
846
10
打赏
收藏
数据量过大时 使用事务会锁住表 其他用户无法操作 求解决方案
1.用户多,最少百万级 2.数据量庞大,百万级数据量搜索 3.操作多,同时或时间很短出现两个用户对表操作,另一个用户无法操作 4.在一个用户执行事务只要实现其他用户对表的插入和更新就行 5.我恨啊 CSDN有Bug 刚刚我在发帖的时候 选其他数据库 [其他数据库开发/MySQL/Postgresql] 发的帖子看不成 老是报 404 可是我的100分就这样被扣了 没分了 相信大家不会介意的 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Andy-W
2012-09-17
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
3楼说的很好啊
我有三个问题啊
1.旧数据放到其他库中 新数据分区 会不会造成数据不同步 客户对旧数据偶尔也会去访问的
2.sql server 2008里面的 快照+同步复制能替代事务么? 会不会锁住数据或造成数据不同步
3.我找过资料 看过淘宝核心博客的一篇文章也是将很大的事务细分 通过中介表来判断提交还是回滚 软件这方面能减少依赖或者也细分事务么?
[/Quote]
1.用戶偶尔访问历史数据,你可以设置专门的查询历史数据的连接,当查询历史数据的时候就要重新设置连接,连到历史库查询资料。
2.2008里面的快照是不能访问的,在2008里面快照最大的作用是作为故障转移使用。如果说想实现读写分离,需要通过事务复制。或者通过其他中间件如Moebius。
3.淘宝開源的工具沒具體研究,無法定論。
Andy-W
2012-09-13
打赏
举报
回复
[Quote=引用楼主 的回复:]
1.用户多,最少百万级
2.数据量庞大,百万级数据量搜索
3.操作多,同时或时间很短出现两个用户对表操作,另一个用户无法操作
4.在一个用户执行事务只要实现其他用户对表的插入和更新就行
5.我恨啊 CSDN有Bug 刚刚我在发帖的时候 选其他数据库 [其他数据库开发/MySQL/Postgresql] 发的帖子看不成 老是报 404
可是我的100分就这样被扣了 没分了 ……
[/Quote]
1.用户多,最少百万级,可以考慮表分區,按某一時間段進行分區,對於歷史數據,可以考慮分庫,對歷史數據作归档。
2.数据量庞大,百万级数据量搜索,海量数据的搜索,必须考虑搜索引擎技术,如開源的Lucene,非常不錯的。當然可以考虑使用ms的全文搜索功能。
3.操作多,同时或时间很短出现两个用户对表操作,另一个用户无法操作。
可以考虑升级至sql 2005或以上版本,使用快照+同步复制实现读写分离。在sql 2012的快照可以直接读快照里面的内容,这样在一定业务需求范围内,快速满足我们的读写分离需求。
4.在一个用户执行事务只要实现其他用户对表的插入和更新就行
这句号有矛盾。事务要控制事务中的执行先后顺序保持一致,事务尽量短,对应一些不要求严谨的查询考虑允许脏读,这就要降低事务隔离级别,通常的做法是select 的时候不设置共享锁(nolock)实现。
發糞塗牆
2012-09-13
打赏
举报
回复
分开负载,把基本上只读的数据(如历史数据)分开表存放,或者使用分区,对一些查询,可以权衡使用表锁来获取更快的速度,使得锁持有时间更短。
中国风
2012-09-13
打赏
举报
回复
什么数据库?
如果是新增,要保留事务的短小
Oracle和SQL05以上版本,读表时可用快照隔离,不受新增的影响
Hi幸福来敲门
2012-09-13
打赏
举报
回复
3楼说的很好啊
我有三个问题啊
1.旧数据放到其他库中 新数据分区 会不会造成数据不同步 客户对旧数据偶尔也会去访问的
2.sql server 2008里面的 快照+同步复制能替代事务么? 会不会锁住数据或造成数据不同步
3.我找过资料 看过淘宝核心博客的一篇文章也是将很大的事务细分 通过中介表来判断提交还是回滚 软件这方面能减少依赖或者也细分事务么?
發糞塗牆
2012-09-13
打赏
举报
回复
分区在物理上是分开的,但是从sqlserver看来是一个表,2005以上才支持分区。在微软sqlserver2012广州发布会上,他们的DBA说过,给客户的意见是:3000万数据以上就要分区
Hi幸福来敲门
2012-09-13
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
分开负载,把基本上只读的数据(如历史数据)分开表存放,或者使用分区,对一些查询,可以权衡使用表锁来获取更快的速度,使得锁持有时间更短。
[/Quote]
有一些数据是旧的 但有时客户也会去访问 不经常而已 分区能缓解大数据量么? 会不会造成数据不同步啊
Hi幸福来敲门
2012-09-13
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
什么数据库?
如果是新增,要保留事务的短小
Oracle和SQL05以上版本,读表时可用快照隔离,不受新增的影响
[/Quote]
oracle 8i 和sql server 2008 sql用的少但也用 oracle怎么办啊?
MySQL单
表
数据
量过千万,采坑优化记录,完美
解决方案
问题概述
使用
阿里云rds for MySQL
数据
库(就是MySQL5.6版本),有个用户上网记录
表
6个月的
数据
量近2000万,保留最近一年的
数据
量达到4000万,查询速度极慢,日常卡死。严重影响业务。 问题前提:老系统,当
时
设计系统的人大概是大学没毕业,
表
设计和sql语句写的不仅仅是垃圾,简直
无法
直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!! ...
MySQL单
表
数据
量过千万,怎么优化记?完美
解决方案
问题概述
使用
MySQL
数据
库(就是MySQL5.7版本),有个用户上网记录
表
6个月的
数据
量近2000万,保留最近一年的
数据
量达到4000万,查询速度极慢,日常卡死。严重影响业务。 问题前提:老系统,当
时
设计系统的人大概是大学没毕业,
表
设计和sql语句写的不仅仅是垃圾,简直
无法
直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!! 我尝试解决该问题,so,有个这个博客。 方案概述 方案一:优化现有mysql
数据
库。优点:不影响现有业务,源程序不需要修改代码,
mysql
数据
库中,
数据
量很大的
表
,完美
解决方案
问题概述
使用
阿里云rds for MySQL
数据
库(就是MySQL5.6版本),有个用户上网记录
表
6个月的
数据
量近2000万,保留最近一年的
数据
量达到4000万,查询速度极慢,日常卡死。严重影响业务。 问题前提:老系统,当
时
设计系统的人大概是大学没毕业,
表
设计和sql语句写的不仅仅是垃圾,简直
无法
直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!! ...
大
数据
量下高并发同步的
解决方案
大
数据
量下高并发同步的讲解(不看,保证你后悔) 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1、同步和异步的区别
数据
库大
数据
量的优化方案
在系统开发的初期以及
使用
的初期,一般不
会
太过于在意
数据
库的设计以及sql语句的优化,这就
会
导致系统有可能在日积月累的海量
数据
下越来越慢直至崩溃,所以以后在系统
数据
库设计之初完备的
数据
库模型的设计是必须的。 优化
数据
库方案 对于
数据
库的的优化此处给出三种优化方案: 1.优化现有mysql
数据
库 优点:不影响现有业务,源程序不需要修改代码,成本最低 缺点:有优化瓶颈,
数据
量过亿就
无法
继续支撑相应的业务 2.升级
数据
库类型,换一种100%兼容mysql的
数据
库 优点:不影响现有业务,源程序不需要修改代码,你几
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章