2012年2月4日

使用SquirrelMQ打造一个千万级数据更新量的应用

摘要: 原文:http://blog.sina.com.cn/s/blog_7530db6f0100uo4c.html 我们知道微博的访问量是非常大的,一秒钟可能有成千上万的人发布微博或者删除微博,所以数据库要承受的压力非常大,这样就可能导致数据库并发量太大而操作失败。 那么,我们考虑一下,可不可以把所有的插入操作一步一步的完成呢?也就是说等到第一个插入操作完成再做第二个插入操作呢?要实现这种情况,我们可以使用消息队列。消息队列的作用就是把大量并发操作变成线性操作。那么我们怎么使用消息队列来完成呢?如下图:从图上可以看出,我们把所有的数据库操作都发送到消息队列中,然后让消息队列来进行对数据库的操作.. 阅读全文

posted @ 2012-02-04 13:30 cn三少<script></script> 阅读(485) 评论(0) 推荐(0) 编辑

MYSQL 的一些基本操作

摘要: MYSQL 的一些基本操作首先进入mysql的编辑环境一.基本应用1.显示mysql的版本,当前日期Mysql > select version(),current_date;2:利用mysql来计算md5加密,计算一些数值Mysql > select md5(‘welefen’),sin(pi()/4);//加密字符串welefen;执行sin( );3:显示用户下所有的数据库;Mysql > show databases;4:显示某个数据库下所有的数据表Mysql > use welefen;Mysql > show tables;5:显示某个数据表中所有的字 阅读全文

posted @ 2012-02-04 12:52 cn三少<script></script> 阅读(646) 评论(0) 推荐(0) 编辑

MySQL CREATE EVENT创建任务计划 定时执行任务

摘要: 一、前言 自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。 事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执... 阅读全文

posted @ 2012-02-04 12:30 cn三少<script></script> 阅读(3569) 评论(0) 推荐(0) 编辑

【引用】MySQL定时任务

摘要: 定时任务 查看event是否开启: show variables like '%sche%'; 将事件计划开启: set global event_scheduler=1; 关闭事件任务: alter event e_test ON COMPLETION PRESERVE DISABLE; 开户事件任务: alter event e_test ON COMPLETION PRESERVE ENABLE; 简单实例. 创建表 CREATE TABLE test(endtime DATETIME); 创建存储过程test CREATE PROCEDURE test () BEGIN 阅读全文

posted @ 2012-02-04 12:24 cn三少<script></script> 阅读(224) 评论(0) 推荐(0) 编辑

MySQL行锁深入研究

摘要: 做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为Selectrestnumfrombookwhereid=1; --如果restnum大于0,执行update Updatebooksetrestnum=restnum-1whereid=1;问题就来了,当2个人同时来借的时候,有可能第一个人执行select语句的时候,第二个人插了进来,在第一个人没来得及更新book表的时候,第二个人查到数据了,其实是脏数据,因为第一个人会把restnum值减1,因此第二个人本来应该是查到id=1的 阅读全文

posted @ 2012-02-04 00:59 cn三少<script></script> 阅读(205) 评论(0) 推荐(0) 编辑

浅析大数据量高并发的数据库优化

摘要: 一、数据库结构的设计如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的。在一个系统分析、设计阶段,因为数据量较小,负荷较低。我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程。所以在考虑整个系统的流程的时候,我们必须要考虑,在高并发大数据量的访问情况下,我们的系统会不会出现极端的情况。(例如:对外统计系统在7月 16日出 阅读全文

posted @ 2012-02-04 00:35 cn三少<script></script> 阅读(292) 评论(0) 推荐(0) 编辑

不用锁表,没有异常:在高并发网络中高效的更新数据库数据的方式

摘要: 很多Web系统的瓶颈在网络IO,所以很多系统都采用多Web服务器负载均衡,双DB做双机热备(其实就是只有一个DB,两台只有一台真正工作,死掉一台另一台顶上)的方式部署,在这个时候很多原本不是问题的系统也会产生很多的问题。这里我们假设有表Product,其定义如下:列明类型说明IdInt自增字段,实例的IDProductNameVarchar(100)商品的名称StoreCountint库存数量。。。。。。。。。假设很不凑巧的,3个管理员P1,P2,P3同时操作了这个表,且P1 update StoreCount=50,P2 update StoreCount=49,P3 update Stor 阅读全文

posted @ 2012-02-04 00:25 cn三少<script></script> 阅读(451) 评论(0) 推荐(0) 编辑

数据库 ACID

摘要: 1、数据库事务的属性-ACID(四个英文单词的首写字母):1)原子性(Atomicity)所谓原子性就是将一组操作作为一个操作单元,是原子操作,即要么全部执行,要么全部不执行。2)一致性(Consistency)事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。3)隔离性(Isolation)隔离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。4)持久性(Durab 阅读全文

posted @ 2012-02-04 00:20 cn三少<script></script> 阅读(1345) 评论(0) 推荐(0) 编辑

导航