一 innoDB 为什么不用平衡二叉树
计算机存储层次结构
计算机存储设备一般分为两种:内存储器(main memory)和外存储器(external memory)。
内存储器为内存,内存存取速度快,但容量小,价格昂贵,而且不能长期保存数据(在不通电情况下数据会消失)。
外存储器即为磁盘读取,磁盘读取数据靠的是机械运动,每次读取数据花费的时间可以分为寻道时间、旋转延迟、传输时间三个部分,寻道时间指的是磁臂移动到指定磁道所需要的时间,主流磁盘一般在5ms以下;旋转延迟就是我们经常听说的磁盘转速,比如一个磁盘7200转,表示每分钟能转7200次,也就是说1秒钟能转120次,旋转延迟就是1/120/2 = 4.17ms;传输时间指的是从磁盘读出或将数据写入磁盘的时间,一般在零点几毫秒,相对于前两个时间可以忽略不计。那么访问一次磁盘的时间,即一次磁盘IO的时间约等于5+4.17 = 9ms左右,听起来还挺不错的,但要知道一台50MIPS的机器每秒可以执行5亿条指令,因为指令依靠的是电的性质,换句话说执行一次IO的时间可以执行450万条指令。一条读SQL需要多次访问磁盘,每次9毫秒的时间,显然是个灾难。
不同介质的访问时间好事,数据来源于google大神Jeff dean
存储介质 | 速度 |
---|---|
L1 cache reference 读取CPU的一级缓存 | 0.5 ns |
Branch mispredict(转移、分支预测) | 5 ns |
L2 cache reference 读取CPU的二级缓存 | 7 ns |
Mutex lock/unlock 互斥锁\解锁 | 100 ns |
Main memory reference 读取内存数据 | 100 ns |
Compress 1K bytes with Zippy 1k字节压缩 | 10,000 ns |
Send 2K bytes over 1 Gbps network 在1Gbps的网络上发送2k字节 | 20,000 ns |
Read 1 MB sequentially from memory 从内存顺序读取1MB | 250,000 ns |
Round trip within same datacenter 从一个数据中心往返一次,ping一下 | 500,000 ns |
Disk seek 磁盘搜索 | 10,000,000 ns |
Read 1 MB sequentially from network从网络上顺序读取1兆的数据 | 10,000,000 ns |
Read 1 MB sequentially from disk 从磁盘里面读出1MB | 30,000,000 ns |
Send packet CA->Netherlands->CA 一个包的一次远程访问 | 150,000,000 ns |
考虑到磁盘IO是非常高昂的操作,计算机操作系统做了一些优化,当一次IO时,不光把当前磁盘地址的数据,而是把相邻的数据也都读取到内存缓冲区内,因为局部预读性原理告诉我们,当计算机访问一个地址的数据的时候,与其相邻的数据也会很快被访问到。每一次IO读取的数据我们称之为一页(page)。具体一页有多大数据跟操作系统有关,一般为4k或8k,也就是我们读取一页内的数据时候,实际上才发生了一次IO,这个理论对于索引的数据结构设计非常有帮助。
假定一张表有1023个记录,用平衡二叉树存储高度是10.访问一行数据需要磁盘搜索10个磁盘块。磁盘块随机读取一次是10ms,也就是访问一行需要10个10ms。为了提速,需要尽可能少的访问磁盘块。一个n叉平衡排序树,节点数量N相同的情况下,它的高度是logn(N)。想降低磁盘访问次数,需要增大n。如果是10叉排序树,那么这张表只需要3到4次磁盘随机访问。
本文讲解辅助用表:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
5亿条记录,表空间20GB的test表只有3层
➜ mysql git:(stable) innodb_space -s ibdata1 -T identity/test -I PRIMARY -l 0 index-level-summary | wc -l
1146555
➜ mysql git:(stable) innodb_space -s ibdata1 -T identity/test -I PRIMARY -l 1 index-level-summary | wc -l
1093
➜ mysql git:(stable) innodb_space -s ibdata1 -T identity/test -I PRIMARY -l 2 index-level-summary
page index level data free records min_key
3 97 2 15288 418 1092 id=1
1到4层B+树能装填的最大记录数, 数据来源 https://blog.jcole.us/2013/01/10/btree-index-structures-in-innodb/
Height | Non-leaf pages | Leaf pages | Rows | Size in bytes |
---|---|---|---|---|
1 | 0 | 1 | 468 | 16.0 KiB |
2 | 1 | 1203 | > 563 thousand | 18.8 MiB |
3 | 1204 | 1447209 | > 677 million | 22.1 GiB |
4 | 1448413 | 1740992427 | > 814 billion | 25.9 TiB |
二 B+树数据结构
B+树
是一种数据结构,是一个N叉排序树,每个节点通常有多个孩子,一棵B+树
包含根节点、内部节点和叶子节点。根节点可能是一个叶子节点, 也可能是一个包含两个或两个以上孩子节点的节点。
B+树
通常用于数据库和操作系统的文件系统
中。NTFS、ReiserFS、NSS、XFS、JFS、ReFS和BFS等文件系统都在使用B+树
作为元数据索引。B+树
的特点是能够保持数据稳定有序, 其插入与修改拥有较稳定的对数时间复杂度。B+树
元素自底向上插入。
B+树的定义
B+树
是应文件系统所需而出的一种B-树
的变型树。一棵m阶
的B+树
和m阶的B-树
的差异在于:
1) 有n棵子树的节点中含有n个关键字(即每个关键字对应一棵子树);
2) 所有叶子节点中包含了全部关键字的信息, 及指向含这些关键字记录的指针,且叶子节点本身依关键字的大小自小而大顺序链接;
3) 所有的非终端节点可以看成是索引部分,节点中仅含有其子树(根节点)中的最大(或最小)关键字
4) 除根节点外,其他所有节点中所含关键字的个数必须>=⌈m/2⌉
(注意: B-树
是除根以外的所有非终端节点至少有⌈m/2⌉
棵子树)
上图是所示为一棵3阶的B+树
,通常在B+树
上有两个指针头, 一个指向根节点,另一个指向关键字最小的叶子节点。因此,可以对B+树
进行两种查找运算: 一种是从最小关键字起顺序查找,另一种是从根节点开始,进行随机查找。
innodb_space -s ibdata1 -T identity/identity_app_token -I PRIMARY -l 0 index-level-summary | wc -l
innodb_space -s ibdata1 -T identity/test -I PRIMARY -l 2 index-level-summary
三 Page结构
页是InnoDB存储引擎磁盘管理的最小单位,每个页默认16KB;磁盘读取的最小单位,即使只需要读一行记录,也需要载入一个page的数据。基本页结构概览:
文件头数据结构:
根据页号可以算出一张表最大可以占用多大的物理空间。前驱指针和后继指针让同一个层级的Page构成一个双向链表,让范围查找变成可能。
用户记录数据结构:
所有的记录已单链表的逻辑结构存储。
页目录:用户记录(User Records)链表的辅助指针数组。每4-8个连续记录一组,页目录里的Slot(槽)指向这一组的最后一个记录的偏移地址。
空间换时间,让二分查找在单链表上变为可能。
innodb_space -s ibdata1 -T identity/identity_app_token -p 3 page-records
innodb_space -s ibdata1 -T identity/identity_app_token -p 3 page-dump | more
innodb_space -s ibdata1 -T identity/identity_app_token -p 3 page-illustrate
一个简单SQL的查找过程
select *
from identity_app_token
where id = 723027
1 先看根节点(默认3号)page
➜ mysql git:(stable) innodb_space -s ibdata1 -T identity/identity_app_token -p 3 page-records
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin21/rbconfig.rb:230: warning: Insecure world writable dir /opt/homebrew in PATH, mode 040777
Record 130: (id=187010) → #711
Record 148: (id=282852) → #712
Record 166: (id=348011) → #713
Record 184: (id=498519) → #716
Record 202: (id=524815) → #717
Record 220: (id=551231) → #719
Record 238: (id=665015) → #720
目标id 723027 大于 665015, 因此我们需要在第二层索引720号page继续查找
2 查找第二层索引page720号页面, 数据比较多,这里仅截取部分有用数据
➜ mysql git:(stable) innodb_space -s ibdata1 -T identity/identity_app_token -p 720 page-records
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin21/rbconfig.rb:230: warning: Insecure world writable dir /opt/homebrew in PATH, mode 040777
Record 130: (id=665015) → #6141
Record 148: (id=665039) → #6142
Record 166: (id=665062) → #6143
Record 184: (id=665085) → #6144
Record 202: (id=665109) → #6145
Record 220: (id=665132) → #6146
Record 238: (id=665156) → #6147
Record 256: (id=665182) → #6148
Record 274: (id=666014) → #6149
Record 292: (id=667005) → #6150
Record 310: (id=667026) → #6151
Record 328: (id=667050) → #6152
Record 346: (id=667073) → #6153
Record 364: (id=669000) → #6154
Record 382: (id=671016) → #6155
Record 400: (id=671037) → #6156
Record 418: (id=671060) → #6157
Record 436: (id=674002) → #6158
Record 454: (id=676016) → #6159
Record 472: (id=677019) → #6160
Record 490: (id=677038) → #6161
Record 508: (id=677058) → #6162
Record 526: (id=677080) → #6163
Record 544: (id=677101) → #6164
Record 562: (id=677123) → #6165
Record 580: (id=677149) → #6166
Record 598: (id=677175) → #6167
Record 616: (id=677200) → #6168
Record 634: (id=677225) → #6169
Record 652: (id=677247) → #6170
Record 670: (id=677271) → #6171
Record 688: (id=677298) → #6172
Record 706: (id=677322) → #6173
Record 724: (id=677347) → #6174
Record 742: (id=677371) → #6175
Record 760: (id=677394) → #6176
Record 778: (id=677418) → #6177
Record 796: (id=677441) → #6178
Record 814: (id=677464) → #6179
Record 832: (id=677487) → #6180
Record 850: (id=677506) → #6181
Record 868: (id=677527) → #6182
Record 886: (id=677544) → #6183
Record 904: (id=677563) → #6184
Record 922: (id=677582) → #6185
Record 940: (id=677603) → #6186
Record 958: (id=677625) → #6187
Record 976: (id=677647) → #6188
Record 994: (id=677669) → #6189
Record 1012: (id=677692) → #6190
Record 1030: (id=677712) → #6191
Record 1048: (id=677733) → #6192
Record 1066: (id=677754) → #6193
Record 1084: (id=677774) → #6194
Record 1102: (id=677793) → #6195
Record 1120: (id=677813) → #6196
Record 1138: (id=677831) → #6197
Record 1156: (id=678017) → #6198
Record 1174: (id=678034) → #6199
Record 1192: (id=679008) → #6200
Record 1210: (id=679028) → #6201
Record 1228: (id=680007) → #6202
Record 1246: (id=680031) → #6203
Record 1264: (id=680054) → #6204
Record 1282: (id=680074) → #6205
Record 1300: (id=680094) → #6206
Record 1318: (id=680114) → #6207
Record 1336: (id=682014) → #6208
Record 1354: (id=683010) → #6209
Record 1372: (id=683032) → #6210
Record 1390: (id=684010) → #6211
Record 1408: (id=685017) → #6212
Record 1426: (id=685038) → #6213
Record 1444: (id=686000) → #6214
Record 1462: (id=686019) → #6215
Record 1480: (id=686036) → #6216
Record 1498: (id=686054) → #6217
Record 1516: (id=687021) → #6218
Record 1534: (id=688010) → #6219
Record 1552: (id=689003) → #6220
Record 1570: (id=689024) → #6221
Record 1588: (id=689046) → #6222
Record 1606: (id=691001) → #6223
Record 1624: (id=691023) → #6224
Record 1642: (id=694005) → #6225
Record 1660: (id=695022) → #6226
Record 1678: (id=697001) → #6227
Record 1696: (id=699001) → #6228
Record 1714: (id=700001) → #6229
Record 1732: (id=700023) → #6230
Record 1750: (id=702000) → #6231
Record 1768: (id=704001) → #6232
Record 1786: (id=706014) → #6233
Record 1804: (id=708021) → #6234
Record 1822: (id=708043) → #6235
Record 1840: (id=709019) → #6236
Record 1858: (id=709041) → #6237
Record 1876: (id=710010) → #6238
Record 1894: (id=710031) → #6239
Record 1912: (id=710056) → #6240
Record 1930: (id=710080) → #6241
Record 1948: (id=712007) → #6242
Record 1966: (id=714004) → #6243
Record 1984: (id=714028) → #6244
Record 2002: (id=715010) → #6245
Record 2020: (id=716014) → #6246
Record 2038: (id=717000) → #6247
Record 2056: (id=718005) → #6248
Record 2074: (id=719018) → #6249
Record 2092: (id=719041) → #6250
Record 2110: (id=719063) → #6251
Record 2128: (id=719086) → #6252
Record 2146: (id=719108) → #6253
Record 2164: (id=719131) → #6254
Record 2182: (id=719153) → #6255
Record 2200: (id=719174) → #6256
Record 2218: (id=719198) → #6257
Record 2236: (id=719220) → #6258
Record 2254: (id=719242) → #6259
Record 2272: (id=719265) → #6260
Record 2290: (id=719288) → #6261
Record 2308: (id=720000) → #6262
Record 2326: (id=721017) → #6263
Record 2344: (id=721039) → #6264
Record 2362: (id=721062) → #6265
Record 2380: (id=721085) → #6266
Record 2398: (id=721107) → #6267
Record 2416: (id=721130) → #6268
Record 2434: (id=721152) → #6269
Record 2452: (id=721174) → #6270
Record 2470: (id=721197) → #6271
Record 2488: (id=721220) → #6272
Record 2506: (id=722019) → #6273
Record 2524: (id=723007) → #6274
Record 2542: (id=723028) → #6275
Record 2560: (id=723051) → #6276
Record 2578: (id=723074) → #6277
Record 2596: (id=723098) → #6278
Record 2614: (id=723120) → #6279
Record 2632: (id=723144) → #6280
Record 2650: (id=723167) → #6281
Record 2668: (id=723189) → #6282
Record 2686: (id=723213) → #6283
Record 2704: (id=723236) → #6284
Record 2722: (id=723258) → #6285
Record 2740: (id=723282) → #6286
Record 2758: (id=723306) → #6287
Record 2776: (id=723328) → #6288
Record 2794: (id=723352) → #6289
Record 2812: (id=724020) → #6290
Record 2830: (id=725003) → #6291
Record 2848: (id=726004) → #6292
Record 2866: (id=726027) → #6293
Record 2884: (id=726047) → #6294
Record 2902: (id=726070) → #6295
Record 2920: (id=726093) → #6296
Record 2938: (id=727000) → #6297
Record 2956: (id=727022) → #6298
Record 2974: (id=728001) → #6299
Record 2992: (id=728024) → #6300
Record 3010: (id=729015) → #6301
Record 3028: (id=730006) → #6302
Record 3046: (id=730029) → #6303
Record 3064: (id=730052) → #6304
Record 3082: (id=731006) → #6305
Record 3100: (id=731028) → #6306
Record 3118: (id=731053) → #6307
Record 3136: (id=732016) → #6308
Record 3154: (id=732039) → #6309
Record 3172: (id=732062) → #6310
Record 3190: (id=732086) → #6311
Record 3208: (id=732110) → #6312
Record 3226: (id=732134) → #6313
Record 3244: (id=732156) → #6314
Record 3262: (id=732176) → #6315
Record 3280: (id=732198) → #6316
Record 3298: (id=732219) → #6317
Record 3316: (id=736000) → #6318
➜ mysql git:(stable)
目标id 723027 介于下面两个记录之间,因此在第三层索引页面6274上继续寻找
Record 2524: (id=723007) → #6274
Record 2542: (id=723028) → #6275
3 查找第三层page 6274号页面, 通过输出我们发现,这是一层是数据page
➜ mysql git:(stable) innodb_space -s ibdata1 -T identity/identity_app_token -p 6274 page-records
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin21/rbconfig.rb:230: warning: Insecure world writable dir /opt/homebrew in PATH, mode 040777
Record 149: (id=723007) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000038", user_mobile=:NULL, enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="115", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bf82e64d002d2914416087328f800c5bc", delete_flag="0", raw_add_time="185044806-73-65 02:32:60", raw_update_time="395357084-93-84 47:58:11", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF2-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0115\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF2-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C3c5f28", chain_hash="d4cdd5c91201a7a093b75f1f01\x81callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bf82e64d002d2914416087328f800c5bchttp", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 799: (id=723008) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000043", user_mobile=:NULL, enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="115", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bdde5fc67de40b6e97aaac3f9fd7ab2dc", delete_flag="0", raw_add_time="185044806-73-81 80:04:76", raw_update_time="395413379-93-37 89:71:23", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF2-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0115\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF2-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C5cd0d3", chain_hash="f2f212ea1201a7a093b75f1f01\x81callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bdde5fc67de40b6e97aaac3f9fd7ab2dchttp", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 1450: (id=723009) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000044", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b3ecbe1318b0318bf113472728c592ea9", delete_flag="0", raw_add_time="185044806-73-98 57:76:92", raw_update_time="395131904-95-70 79:05:63", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89fc71dc", chain_hash="decb2d701201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b3ecbe1318b0318bf113472728c592ea9http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 2132: (id=723010) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000045", user_mobile=:NULL, enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="115", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bd1f657e97e34266b66acceac3efa02f4", delete_flag="0", raw_add_time="185044806-74-15 35:49:08", raw_update_time="395469454-61-24 21:98:39", user_name="\xE8\xA5\xBF0e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF2-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0115\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF2-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C800248", chain_hash="e0abcb4c1201a7a093b75f1f01\x81callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bd1f657e97e34266b66acceac3efa02f4http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 2783: (id=723011) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000046", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bc523ab558b54698a3eab565bf8ee9321", delete_flag="0", raw_add_time="185044806-74-15 35:49:08", raw_update_time="395160052-45-47 50:12:19", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89c984d9", chain_hash="8319c0031201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bc523ab558b54698a3eab565bf8ee9321http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 3466: (id=723012) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000047", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b87801b7accdbe1d92aaf2223448ba7df", delete_flag="0", raw_add_time="185044806-74-48 90:93:40", raw_update_time="395188199-95-24 21:18:75", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89e860f3", chain_hash="18210c0f1201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b87801b7accdbe1d92aaf2223448ba7dfhttp", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 4149: (id=723013) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000048", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40ba4a1941531282dbc9d7a273cfbaaa11f", delete_flag="0", raw_add_time="185044806-74-48 90:93:40", raw_update_time="395188199-95-24 21:18:75", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89006306", chain_hash="2bf6fedd1201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40ba4a1941531282dbc9d7a273cfbaaa11fhttp", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 4832: (id=723014) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000049", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bed53e1f871121934eba6dfce6606501b", delete_flag="0", raw_add_time="185044806-74-65 68:65:56", raw_update_time="395216347-45-00 92:25:31", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89b1e5cd", chain_hash="f91d63da1201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bed53e1f871121934eba6dfce6606501bhttp", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 5515: (id=723015) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000050", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b8a7833096774e1a08bba1985b6c667b2", delete_flag="0", raw_add_time="185044806-74-65 68:65:56", raw_update_time="395244494-94-77 63:31:87", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89ead309", chain_hash="af90cff21201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b8a7833096774e1a08bba1985b6c667b2http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 6198: (id=723016) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000051", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b0838c49b39d5d3356beeddd031028a66", delete_flag="0", raw_add_time="185044806-74-82 46:37:72", raw_update_time="395272642-44-54 34:38:43", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x8937cb06", chain_hash="c2f343b91201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b0838c49b39d5d3356beeddd031028a66http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 6882: (id=723017) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000052", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b9e115710b3771d59ad4ec034b23a6c0e", delete_flag="0", raw_add_time="185044806-74-82 46:37:72", raw_update_time="395272642-44-54 34:38:43", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9Be81e17", chain_hash="a391bf1f1201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b9e115710b3771d59ad4ec034b23a6c0ehttp", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147551264)
Record 7629: (id=723018) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000053", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="116", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b3b0346da9492643d96a9120aaef2ddf6", delete_flag="0", raw_add_time="185044806-74-99 24:09:88", raw_update_time="395300789-94-31 05:44:99", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0116\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF1-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xB8\x89396866", chain_hash="6fb6e21e1201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ck3\x001d2d", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b3b0346da9492643d96a9120aaef2ddf6http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 8313: (id=723019) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000054", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b1a090e6381389cb7cfcb3591bc1fe39d", delete_flag="0", raw_add_time="185044806-74-99 24:09:88", raw_update_time="395328937-44-07 76:51:55", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9Bc0b26b", chain_hash="ec37b5ca1201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b1a090e6381389cb7cfcb3591bc1fe39dhttp", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 9061: (id=723020) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000055", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b44d96ee6fc7d93d5ea28140032ba6af9", delete_flag="0", raw_add_time="185044806-75-16 01:82:04", raw_update_time="395328937-44-07 76:51:55", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9Bb7a7d8", chain_hash="512274a61201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b44d96ee6fc7d93d5ea28140032ba6af9http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 9809: (id=723021) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000056", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b117ebb5a0ce5cde0c80794a40e288c48", delete_flag="0", raw_add_time="185044806-75-32 79:54:20", raw_update_time="395357084-93-84 47:58:11", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9Bd9dc20", chain_hash="4af6bef11201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b117ebb5a0ce5cde0c80794a40e288c48http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 10557: (id=723022) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000057", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b28dd84878833cd6df7c6231be329f872", delete_flag="0", raw_add_time="185044806-75-32 79:54:20", raw_update_time="395357084-93-84 47:58:11", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9Bd5df0a", chain_hash="38aede191201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b28dd84878833cd6df7c6231be329f872http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 11305: (id=723023) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000058", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b19cc77bc01e01de030691359401e0dd3", delete_flag="0", raw_add_time="185044806-75-49 57:26:36", raw_update_time="395385232-43-61 18:64:67", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B82f75d", chain_hash="6d871a771201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b19cc77bc01e01de030691359401e0dd3http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 12053: (id=723024) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000059", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bf7490f4fab12bb5293799d7e2d41f190", delete_flag="0", raw_add_time="185044806-75-49 57:26:36", raw_update_time="395413379-93-37 89:71:23", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B10ca45", chain_hash="49d20eee1201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bf7490f4fab12bb5293799d7e2d41f190http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147565576)
Record 12801: (id=723025) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000060", user_mobile="f1f2e738beb0848b99b1a6a331048ee0", enterprise_id=:NULL, enterprise_code=:NULL, status="finish", scene="117", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b0d603e259ddd0851210c0ff31699a289", delete_flag="0", raw_add_time="185044806-75-83 12:70:68", raw_update_time="395441527-43-14 60:77:79", user_name="\xE6\xAC\xA30e6b82", enterprise_name=:NULL, user_id_card="c28444914785481af2994094dcb826133cf70b512bc5cef55cb8314167\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9B\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0117\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF3-\xE4\xB8\xAA\xE4\xBA\xBA\xE5\x9B\x9Bd1fe1d", chain_hash="e4300bd21201a7a093b75f1f01\x80callb", archive_times=-31, callback_status="ckd3cf29", relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card="afc55250e4a8981c67fa24fea6f6eb1b29248fd311ff4dcf2b1bef3c013\x001d2d", curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b0d603e259ddd0851210c0ff31699a289http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x03\x14\xA0", legal_card_type=:NULL, version=2147559427)
Record 13545: (id=723026) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000061", user_mobile=:NULL, enterprise_id=:NULL, enterprise_code=:NULL, status="init", scene="136", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bee7c7e13b97d5b8a669e882622c484d6", delete_flag="0", raw_add_time="185044806-75-99 90:42:84", raw_update_time="393668119-98-64 75:46:09", user_name="ab3902", enterprise_name=:NULL, user_id_card="af2ac9422b81d53bcfdbe77fa8d19a2be07785d75ee6ec46bd4962d86f\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF20-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C+\xE4\xBA\xBA\xE8\x84\xB8\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0136\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF20-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C+\xE4\xBA\xBA\xE8\x84\xB8\x803\x001d2", chain_hash=:NULL, archive_times=-28, callback_status=:NULL, relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40bee7c7e13b97d5b8a669e882622c484d6http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x04\x14\xA0", legal_card_type=:NULL, version=2147559427)
Record 14164: (id=723027) → (app_id="C-SCF", user_id=:NULL, request_id="SCF20221014000062", user_mobile=:NULL, enterprise_id=:NULL, enterprise_code=:NULL, status="init", scene="136", frontend_url="null&aesToken=1d2d59c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b73b6dbd5646b8471d33a62d66540acd0", delete_flag="0", raw_add_time="185044806-76-33 45:87:16", raw_update_time="393724414-98-18 17:59:21", user_name="ab3902", enterprise_name=:NULL, user_id_card="af2ac9422b81d53bcfdbe77fa8d19a2be07785d75ee6ec46bd4962d86f\xE4\xBE\x9B\xE5\xBA\x94", scene_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF20-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C+\xE4\xBA\xBA\xE8\x84\xB8\xE4\xBE\x9B\xE5\xBA\x94", app_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\xB9\xB3\xE5\x8F\xB0136\xE4\xBE\x9B", flow_parent="\xE5\xBA\x94", flow_parent_name="\xE9\x93\xBE\xE9\x87\x91\xE8\x9E\x8D\xE5\x9C\xBA\xE6\x99\xAF20-\xE4\xB8\xAA\xE4\xBA\xBA\xE4\xBA\x8C+\xE4\xBA\xBA\xE8\x84\xB8\x803\x001d2", chain_hash=:NULL, archive_times=-28, callback_status=:NULL, relation_id=:NULL, enterprise_legeal_id_card=:NULL, enterprise_legeal_name=:NULL, user_bank_card=:NULL, curr_user_is_legeal="5", verify_fail_times=57, aes_token="c56b56da8bb10a87a46130c865d3c3c71bd953eb3ad2f8475fc03e7b2c0a282a3eb11602a18df45b985f2563a5d180fee0329e56b34a835c5d957fc40b73b6dbd5646b8471d33a62d66540acd0http", enterprise_bank_card=:NULL, feature=:NULL, terminal=" \x00\x00\x00\x04\x00\x00", legal_card_type=:NULL, version=0)
目标数据就在这个page上,那么innodb会把整个page从磁盘上读取出来返回给mysql server。
四 聚集索引 & 二级索引
在MySQL中,创建一张表时会默认为主键创建聚簇索引,B+树将表中所有的数据组织起来,即数据就是索引主键所以在InnoDB里,主键索引也被称为聚簇索引,索引的叶子节点存的是整行数据。而除了聚簇索引以外的所有索引都称为二级索引,二级索引的叶子节点内容是主键的值。
-
聚集(一级索引)
- 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。 索引定义中包含聚集索引列。 每个表只能有一个聚集索引,因为数据行本身只能按一个顺序存储。
- 只有当表包含聚集索引时,表中的数据行才按排序顺序存储。 如果表具有聚集索引,则该表称为聚集表。 如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。
-
非聚集(也称二级索引)
- 非聚集索引具有独立于数据行的结构。 非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。
- 除了主键索引以外的索引都是非聚集索引
B+Tree的叶子节点存放主键索引值和行记录就属于聚簇索引;如果索引值和行记录分开存放就属于非聚簇索引。
id(Primary key) 聚集索引 | Name (key)非聚集索引 | Companay |
---|---|---|
5 | Gates | Microsoft |
7 | Bezos | Amazon |
11 | Jobs | Apple |
14 | Ellison | Oracle |
二级索引的查找过程:二级索引满足查询需求,则直接返回,此时索引即为覆盖索引,反之则需要回表去主键索引(聚簇索引)进行二次查询
- 每个二级索引都是一个完整的B+树,因此增加索引要考虑磁盘空间影响,不添加过多的索引和过大的索引(varchar不能全部上索引)。
- 为了保证有序性,insert,update,delete语句可能会导致页分裂行为,从而使得性能下降(二级索引越多,影响越大,不鼓励建太多的二级索引)
- 建一个(A, B, C)的联合索引,我们能用上(A), (A, B), (A, B, C)索引
- like “%search_key” 用不上索引, like “search_key%” 用的上索引
- 因为二级索引有回表的操作,所以能用主键索引就用主键索引
参考资料
- https://blog.jcole.us/innodb/ mysqlab 公司第14号员工的innodb系列博客
- https://github.com/jeremycole/innodb_ruby innodb底层存储分析工具
- 《高性能mysql》
- MySQL技术内幕:InnoDB存储引擎(第2版)