我正在使用 MySql 来存储这种格式的基本表:
id int(11) //Auto-Incrementing ID
data varchar(5120) //Random input data, compressed by a program, not mysql.
-----------------------
Row size ø 916 B
这有点麻烦,因为现在我每个月大约有 5,000 条记录,我想优化它而不是最终平均为 1mb/1000 条记录。
我最初以这种方式设置它是因为我希望能够捕获更大的集合,但它们很少见,正如您在此图表中看到的那样:
count n*128 bytes
+-------+----------
1 28
1 26
1 24
2 22
8 21
4 20
13 19
12 18
16 17
27 16
43 15
58 14
69 13
114 12
184 11
262 10
399 9
588 8
807 7
1224 6
1245 5
546 4
73 3
9 2
6 1
1 0
我在这里主要关心的是我浪费了多少空间来容纳该图表的尾端,以及当我最终得到更大的异常值时会发生什么?当大约 80% 的数据非常适合 varchar 1024 块时,我将不得不再次增加行大小,这是我现在使用的大小的 1/5。
那么我应该如何首先构建这个东西呢?