1、mysql innodb myisam 在磁盘上的表现
myisam :在磁盘上存储成三个文件 .frm(存储表定义) .MYD(存储数据) .MYI(MYindex 存储索引)
innodb
在磁盘上存储成两个文件 .frm(存储表定义) .idb(保存数据和索引)
聚簇索引的顺序就是数据的物理存储顺序, 如:idb
非
聚簇索引
的解释是:索引顺序与数据物理排列顺序无关。索引数据分开保存如:MYD,MYI
2、常见的维度使用类型
1、IP 用 unsigned(42亿) int inet_aton
2、身份证用 char(18)
3、手机号码用 char(13)包括香港客户, 只针对国内客户用char(11) 为什么不用bigint才占8字节而char占用11个字节,因为业务查询什么的用到like或者正则匹配会用到索引。包括国际客户用 char(32)。
如果查询的话,一般使用char 用空间换取时间
4、银行卡用char(19)
因为银行卡的号码较长,并且全是数字,为了方便存储,就
统一存储
为字符串类型。如果存储为number类型,已经超出了int类型最大值范围,必须用bigInteger存储,很不方便。并且位数太多的数值会变成
科学计数法
PS:空间复杂度O(11n)与O(8n)其实都算O(n)。各种类型坑太多,还是回归于 符串类型保平安。