上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页
摘要: 幻读 场景例子(innodb的默认事物隔离级别是可重复读) CREATE TABLE ( int(11) NOT NULL, int(11) DEFAULT NULL, int(11) DEFAULT NULL, PRIMARY KEY ( ), KEY ( ) ) ENGINE=InnoDB; i 阅读全文
posted @ 2019-06-30 21:14 Jimmyhe 阅读(2832) 评论(0) 推荐(2) 编辑
摘要: 几个影响sql语句性能的例子 案例一:假设你现在维护了一个交易系统,其中交易记录表tradelog包含交易流水号(tradeid)、交易员id(operator)、交易时间(t_modified)等字段。为了便于描述,我们先忽略其他字段。这个表的建表语句如下: mysql CREATE TABLE 阅读全文
posted @ 2019-06-29 10:39 Jimmyhe 阅读(2032) 评论(0) 推荐(0) 编辑
摘要: orderby是如何工作的 场景例子:假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回 前1000个人的姓名、年龄。 表结构: ​ SQL语句:select city,name,age from t where city="杭州" order by name limit 1000; 全字 阅读全文
posted @ 2019-06-26 23:34 Jimmyhe 阅读(523) 评论(0) 推荐(0) 编辑
摘要: count( )实现原理 不同引擎的实现: MyISAM引擎把表的总行数存在了磁盘上,执行COUNT( )就会直接返回,效率很高; InnoDB在count( )时,需要把数据一行一行的从引擎里面取出来然后累计记数。 注意如果有where过滤条件MYISAM速度就不是很快了。 为什么Innodb不和 阅读全文
posted @ 2019-06-25 15:59 Jimmyhe 阅读(520) 评论(0) 推荐(0) 编辑
摘要: mysql脏页 由于WAL机制,InnoDB在更新语句的时候,制作了写日志这一个磁盘操作,就是redo log,在内存写完redo log后,就返回给客户端, 即更新成功。 把内存里的数据写入磁盘的过程,术语就是flush,在flush之前,实际数据和数据库中的数据是不一致的,因为在redo log 阅读全文
posted @ 2019-06-23 12:29 Jimmyhe 阅读(364) 评论(0) 推荐(1) 编辑
摘要: mysql为什么有时会选错索引 场景例子:一张表里有a,b两个字段,并分别建立以下索引 CREATE TABLE ( int(11) NOT NULL, int(11) DEFAULT NULL, int(11) DEFAULT NULL, PRIMARY KEY ( ), KEY ( ), KEY 阅读全文
posted @ 2019-06-18 22:34 Jimmyhe 阅读(1039) 评论(0) 推荐(0) 编辑
摘要: 行锁 innodb支持行锁,myisam只支持表锁,同一时刻每张表只能有一条数据被更新 在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放, 而是要等到事务结束时才释放。这个就是两阶段锁协议。 如果你的事务中需要锁多个行,要把最可能造成锁冲突、最可能影响并 发度的锁的申请时 阅读全文
posted @ 2019-06-13 23:31 Jimmyhe 阅读(5185) 评论(0) 推荐(4) 编辑
摘要: mysql基本架构 server层 连接器:管理连接,权限验证,先查询缓存,命中则返回结果。 分析器:词法分析,语法分析 词法分析,识别关键字,转换成列表或列 语法分析,判断是否满足语法规则 优化器:执行计划生成,索引选择 join联表操作执行方法的使用 执行器:操作引擎,返回结果 取到满足条件的第 阅读全文
posted @ 2019-06-11 08:55 Jimmyhe 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一、首先:以下代码都是在LINUX上执行的,因为新版本celery已经不支持windows系统,运行会报错。 Celery是处理大量消息的一个分布式系统,那他是如何运行的呢? 可以看到,Celery 主要包含以下几个模块: 任务模块 Task包含异步任务和定时任务。其中,异步任务通常在业务逻辑中被触 阅读全文
posted @ 2019-05-20 18:18 Jimmyhe 阅读(403) 评论(1) 推荐(0) 编辑
摘要: Django信号 很多数情况下,我们需要在操作数据库之前或者之后做某些操作,比如说写个日志之类的,我们当然可以找到每一个sql语句,在其前后加一段代码, 但是,这不但浪费时间,还为以后的维护增加了难度,这个时候,就体现出信号的作用了。下面的代码是Django中对数据库增加一条数据的操作: 1 2 3 阅读全文
posted @ 2019-05-18 18:02 Jimmyhe 阅读(272) 评论(0) 推荐(1) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页