Method |
Description |
|
buildAwfulCacheKey ( ) |
|
|
buildCacheKeys ( ) |
|
|
buildRowCacheKey ( $keyValues ) |
构造行级缓存索引 |
|
buildTableCacheKey ( $sql, $bindings ) |
构造表级缓存索引 |
|
db ( ) |
获取当前查询所用的数据库名称 |
|
fireEvent ( $name, $data = [] ) |
|
|
flushAffectingRowCache ( ) |
查找受影响的 ID,清空相关行级缓存 |
|
getAwful ( ) |
|
|
getNormal ( ) |
|
|
getSimple ( ) |
简单查询,只根据主键过滤结果集 |
|
hasRawColumn ( $columns ) |
|
|
isAwful ( ) |
判断当前查询是否未「复杂查询」,判断标准
1. 含有 max, sum 等汇聚函数
2. 包含 distinct 指令
3. 包含分组
4. 包含连表
5. 包含联合
6. 包含子查询
7. 包含原生(raw)语句
8. 包含排序 TODO 优化此类情形 |
|
isNormal ( ) |
判断当前查询是否未「普通查询」 |
|
isSimple ( ) |
「简单查询」就是只根据主键过滤结果集的查询,有以下两种形式:
1. select * from foo where id = 1;
2. select * from foo where id in (1, 2, 3); |
|
needCache ( ) |
|
|
needFlushCache ( ) |
|
|