术语

  • 逻辑门

逻辑门(Logic Gates)是在集成电路(Integrated Circuit)上的基本组件。 简单的逻辑门可由晶体管组成。 这些晶体管的组合可以使代表两种信号的高低电平在通过它们之后产生高电平或者低电平的信号。 高、低电平可以分别代表逻辑上的“真”与“假”或二进制当中的1和0,从而实现逻辑运算。

逻辑门又称“数字逻辑电路基本单元”。执行“或”、“与”、“非”、“或非”、“与非”等逻辑运算的电路。 任何复杂的逻辑电路都可由这些逻辑门组成。广泛用于计算机、通信、控制和数字化仪表。

逻辑门的作用是通过控制高、低电平(分别代表逻辑上的“真”与“假”或二进制当中的“1”和“0”),从而实现逻辑运算。

  • TTL

TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。 TTL是IPv4报头的一个8 bit字段。

注意:TTL与DNS TTL有区别。二者都是生存时间,前者指ICMP包的转发次数(跳数),后者指域名解析信息在DNS中的存在时间。

TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64。

虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。

TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。

TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小 1

生存时间,就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器(权威域名服务器)发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

  • 扇入和扇出

扇出(fan-out)是一个定义单个逻辑门能够驱动的数字信号输入最大量的专业术语。大多数的TTL逻辑门能够为10个其他数字门或驱动器提供信号。所以,一个典型的TTL逻辑门有10个扇出信号。

在软件工程中的定义:该模块直接调用的下级模块的个数。在面向对象编程中,扇出应用于继承。

一个模块被其他模块调用的个数,称为该模块的扇入。扇入大些,一般不会影响问题的复杂性,而且扇入越大,说明该模块的复用性越好。

在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。 按照结构化设计方法,一个应用程序是由多个功能相对独立的模块所组成。

  • 扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程度高。
  • 扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高, 需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。 扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的模块。 扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。

设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。

  • 索引的填充因子

创建索引时,可以指定一个填充因子,以便在索引的每个叶级页上留出额外的间隙和保留一定百分比的空间,供将来表的数据存储容量进行扩充和减少页拆分的可能性。填充因子的值是从 0 到 100 的百分比数值,指定在创建索引后对数据页的填充比例。值为 100 时表示页将填满,所留出的存储空间量最小。只有当不会对数据进行更改时(例如,在只读表中)才会使用此设置。值越小则数据页上的空闲空间越大,这样可以减少在索引增长过程中对数据页进行拆分的需要,但需要更多的存储空间。当表中数据会发生更改时,这种设置更为适当。

填充因子越大,意味着一个索引页包含的索引记录越多,空闲空间越小.一般来说查询的效率越高,因为这样查询的时候,可以减少读取索引页的工作量和减少内存使用

但这样导致的结果是数据变动导致的索引维护的工作量增加,因为索引页的空闲空间小,如果不能在本页内完成索引调整,就会引起调整其他索引页

所以一般的选择是,数据基本不变化的(例如OLAP的场景,数据只用来分析的),将填充因子设置到足够大,数据经常变化的(例如OLTP的场景),将填充因子设置为足够小

填充因子是页大小的1/16,页默认16k就是是预留1k的空间,类似oracle的pct free,为以后的Update留出空闲的空间,避免类似行迁移的问题,使每次访问增加了IO操作。

查看参数 17:57:45 mysql>show variables like ‘%fill%’; ±-------------------±------+ | Variable_name | Value | ±-------------------±------+ | innodb_fill_factor | 100 | ±-------------------±------+

100的话表预留1K的空间,80的话表示预留20%的空间。 这个参数很少使用,如果更新很多的话可以考虑小这个参数。