月度归档:2021年11月

empty 检查一个变量是否为空

var存在,并且是一个非空非零的值时返回 false 否则返回 true.

以下的东西被认为是空的:

  • "" (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • "0" (作为字符串的0)
  • null
  • false
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)

MVCC多版本并发控制

MVCC只在read commit和repeatable read两个隔离级别下工作

1–条件有or

2–联合索引【复合索引】不适用第一部分

3–like 以%开头

4–字符串不加引号

5–where条件有数学运算或函数

MySQL为什么使用B+树

聚集索引、聚簇索引:InnoDB 叶子节点包含了完整的数据记录

非聚集索引/稀疏索引:MyISAM 索引和数据分开的

联合索引:

InnoDB主键:

InnoDB如果没有主键: RowId(隐藏列、如果没有主键和唯一索引)

UUID做主键(不推荐):既不是整形、又不是自增

推荐整型做主键,占用空间小(int 4 Bytes)

Hash索引(很少用):仅能满足“=”、“IN”,不支持范围查询,hash冲突可能(小概率)

双向指针:innodb叶子节点存储了上下两个节点的指针信息

继续阅读