InnoDB底层存储结构探秘

一 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 从内存顺序读取1MB250,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 从磁盘里面读出1MB30,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/

HeightNon-leaf pagesLeaf pagesRowsSize in bytes
10146816.0 KiB
211203> 563 thousand18.8 MiB
312041447209> 677 million22.1 GiB
414484131740992427> 814 billion25.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
5GatesMicrosoft
7BezosAmazon
11JobsApple
14EllisonOracle

二级索引的查找过程:二级索引满足查询需求,则直接返回,此时索引即为覆盖索引,反之则需要回表去主键索引(聚簇索引)进行二次查询

  1. 每个二级索引都是一个完整的B+树,因此增加索引要考虑磁盘空间影响,不添加过多的索引和过大的索引(varchar不能全部上索引)。
  2. 为了保证有序性,insert,update,delete语句可能会导致页分裂行为,从而使得性能下降(二级索引越多,影响越大,不鼓励建太多的二级索引)
  3. 建一个(A, B, C)的联合索引,我们能用上(A), (A, B), (A, B, C)索引
  4. like “%search_key” 用不上索引, like “search_key%” 用的上索引
  5. 因为二级索引有回表的操作,所以能用主键索引就用主键索引

参考资料


  1. https://blog.jcole.us/innodb/ mysqlab 公司第14号员工的innodb系列博客
  2. https://github.com/jeremycole/innodb_ruby innodb底层存储分析工具
  3. 《高性能mysql》
  4. MySQL技术内幕:InnoDB存储引擎(第2版)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值