MVCC 基础概念 速查

MVCC 靠隐藏事务号、undo log 旧版本和 Read View 判断可见性,让普通 SELECT 走快照读不加锁,UPDATE 和 FOR UPDATE 走当前读加锁;READ COMMITTED 每次快照读新建 Read View,REPEATABLE READ 只在第一次建。
Alexer 发布于 

sprintf 格式化输出 速查

sprintf 用来按占位符拼接字符串并返回结果,不直接输出。常用 %s、%d、%f、%x 等占位符,支持 %05d 补零、%-10s 左对齐、%.2f 保留小数位,也能用 %1$s 这种位置写法重复取参数。参数不够会报错,多了则忽略。
Alexer 发布于 

PHP 二维数组取值 速查

PHP 二维数组取值用两层下标,键名数组写 $arr,数字下标写 $arr;取某一列用 array_column,遍历用 foreach 逐行取,键可能不存在时先用 isset 判断再取值。
Alexer 发布于 

Lua elseif 多分支 速查

Lua 多分支用 if...elseif...then...else...end,条件自上而下判断,命中即止。elseif 是一个词不能空格,每个分支条件后要跟 then,else 可省略,结尾必须 end。条件按从严格到宽松排列,else if 带空格是嵌套写法需多配 end。
Alexer 发布于 

array_column 用法 速查

array_column 用于从二维数组抽取某一列,返回一维数组。第三个参数可指定某列作为结果键,常用来把查询结果重建成 id 到名称的映射。取不到的列返回 null,作键的列缺失则跳过该条。
Alexer 发布于 

MySQL 字段改名语句 速查

改字段名用 ALTER TABLE ... CHANGE COLUMN,格式是旧名、新名、类型,类型要和原来一致,否则会顺带改类型。MySQL 8.0 起可用 RENAME COLUMN 旧名 TO 新名,只改名不带类型。多个字段可在一个 ALTER TABLE 里用逗号并列,一次改完,数据不受影响。
Alexer 发布于 

Lua 真假值规则 速查

Lua 只有 false 和 nil 为假,0、空串、空表都算真。and 和 or 返回操作数本身而非布尔值,not 才返回布尔。区分 false 与 nil 必须显式比较,默认值写法会把 false 一起替换。
Alexer 发布于 

Lua self 参数作用 速查

self 是冒号定义函数时 Lua 自动加上的隐藏第一个参数,指向调用该函数的表。obj:hello() 等价于 obj.hello(obj);用点号定义就要自己写 self 并手动传表。定义和调用都用冒号,混用会让 self 变成 nil。
Alexer 发布于 

Lua 字符串写法 速查

Lua 字符串单双引号都能用,转义写特殊字符,双方括号写多行文本,两点拼接、#取长度,配合 format、sub、gsub 等函数处理,字符串不可变,操作都返回新串。
Alexer 发布于 

Lua 注释写法 速查

Lua 注释分单行和多行:单行用 -- 到本行末尾,多行用 --]。注释内容里出现 ]],可改成 --==],等号个数首尾一致即可。
Alexer 发布于