标签: mysql

6 篇文章

mysql MVVC理解
在mysql中,每一行数据,除了本身的数据,还维护着其他信息,其中包括: 1. 一个隐藏id, 2. 事务id, 3. 回滚指针。 其中隐藏id的选择规则如下: - 如果有主键id, 则是主键id - 如果有唯一键,则是唯一键 - 如果都没有,则mysql生成一个隐藏id 事务id是顺序递增的,每新增一个事务,事务id就加1;同时,将(update…
MySQL隐式转换
今天在学习mysql时,发现在sql查询中,如果字段建立了索引,数据库定义的字段类型与查询的值如果不一样的话,有的会走索引,有的不会走索引,很是好奇,就查了查资料,现在就总结一下。 准备数据 首先使用存储过程生成1000万条测试数据, 测试表一共建立了7个字段(包括主键),num1和num2保存的是和ID一样的顺序数字,其中num2是字符串类型。 …
mysql事务
事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段。 基础概念 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务。 逻辑架构和存储引擎 如上图所示,MySQL服务器逻辑架构从上往下可以分为三…
mysql主从复制
基础思维导图 常见架构 主从复制原理 对于主从来说,通常的操作是主库用来写入数据,从库用来读取数据。这样的好处是通过将读写压力分散开,避免了所有的请求都打在主库上。同时通过从库进行水平扩展使系统的伸缩性及负载能力也得到了很大的提升。 但是问题就来了,读从库时的数据要与主库保持一致,那就需要主库的数据在写入后同步到从库中。如何保持主库与从库的数据一致…
mysql的in和exists区别
exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条 件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true…
MySQL的if,case语句使用总结
Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回…