mysql总结

一. MyISAM 和 Innodb区别?
1) MyISAM只能加全局锁做全库逻辑备份
2) 不支持行锁, 意味着并发控制只能使用表锁,同一张表上任何时刻只能有一个更新在执行
3) 不支持外键
4)count(*) 直接读取保存好的总行数 有where条件的话也是扫描全表
5) 支持全文索引,压缩索引
6)MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引
7)不支持事务和mvcc(多版本并发控制)
8)查询比较多的业务
9)非聚集索引,索引存储的是物理地址
10)允许没有任何索引和主键的表存在,索引都是保存行的地址
11)frm是表定义文件,myd是数据文件,myi是索引文件

阅读更多

no-title

什么是事务?
事务就是一组原子行为的sql查询,或者说一个独立的工作单元。如果数据库引擎能成功的多数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。
也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。

阅读更多

mysql实战45讲

0x01 一条SQL查询语句是如何执行的?

阅读更多

no-title

时间复杂度
O(1) 常数复杂度
O(log n) 对数复杂度
O(n) 线性时间复杂度
O(n^2) 平方
O(n^3) 立方
O(2^n) 指数
O(n!) 阶乘

阅读更多

sed常用命令

语法一

1
sed [options] {sed-commands} {input-file}

阅读更多

myqsl实战章节小结

0x04 深入浅出索引总结:

阅读更多

mysql查询优化

1、应尽量避免在 WHERE 子句中使用 != 或者 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。

2、应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:

1
SELECT  id  FROM  t  WHERE  num  IS  NULL;

阅读更多

分布式锁

原文

阅读更多

php 部分语法的AST、栈、符号表、和指令集

break 语法的AST、栈、符号表和指令集

先写一个测试脚本 break.php

1
2
3
4
<?php
while(1){
break;
}

阅读更多

php 代码的编译与执行

解释型语言也需要编译吗?

阅读更多