逻辑是,生成一个任务队列,然后根据并发数共同消费这个队列,每次任务执行完毕后,都会将任务重新放回队列中,这样循环使用。同时,每个任务执行完毕后,若失败,或空执行(即,任务无实际数据的处理),会延长其下次执行时间。每次执行时,若...
篇文章说了,刷新数据是通过页为单位,不可能每次查询都从磁盘查询,于是有了buffer pool,通过free,flush来刷新到磁盘,系统正常关闭,系统空闲,内存不足时候刷新。lru链表为了提高缓存命中率来刷新页到磁盘。后面介绍了acid,原子...
最近在公司做一个类似于手机工厂模式的一个项目,用来检测其他各个App是否正常工作,所以要求是尽可能的轻量级,因为是检测其他App的工作,所以整个项目都是信息之间的频繁交互。在项目中存在很多Fragment和Fragment之间的信...
进程池(Pool)可以提供指定数量的进程供用户使用。主要是起限制进程数量的作用。当新的请求提交到pool时,如果进程池没有满,那么就可以创建一个新的进程来响应请求。如果进程池满了,那么就要等到有进程结束,才可以创建新的...
Jedis提供了连接池JedisPool。由于Jedis对象不是线程安全的,所以一般会从连接池中取出一个Jedis对象独占,使用完毕后再归还给连接池。
提交事务的时候,redo日志必须是刷入磁盘文件里的。这样可以严格的保证提交事务之后,数据是绝对不会丢失的,因为有redo日志在磁盘文件里可以恢复你做的所有修改。如果要是选择0的话,可能你提交事务之后,mysql宕机,那么此时re...
在对数据库执行增删改操作的时候,实际上主要都是针对内存里的Buffer Pool中的数据进行的,也
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetchi...
我的网站上一直有好多人留言催更 MySQL 日志(undo log、redo log、binlog)的文章。