MySQL InnoDB 表数据页或者二级索引页(简称数据页或者索引页)的合并与分裂对 InnoDB 表整体性能影响很大;数据页的这类操作越多,对 InnoDB 表数据写入的影响越大。
为新吴等地区用户提供了全套网页设计制作服务,及新吴网站建设行业解决方案。主营业务为做网站、网站设计、新吴网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
MySQL 提供了一个数据页合并临界值(MERGE_THRESHOLD),在某些场景下,可以人为介入,减少数据页的合并与分裂。
在 InnoDB 表里,每个数据页默认16K 大小,默认 MERGE_THRESHOLD 值为 50,取值范围从 1 到 50,默认值即是最大值。也就是当页面记录数占比小于 50% 时,MySQL 会把这页和相邻的页面进行合并,保证数据页的紧凑,避免太多浪费。
先在表2中加一个临时字段(标志重复的),然后将重复的账号设置一下标志,这样合并时就可以按照重复标志字段作为条件。
直接先用union all合并所有的表,再包一层select语句,将合并表作为子表查询,加where条件即可,如果记录重复,可以加distinct关键字去重。
select 表1.学号,表1.姓名,表1.性别,表2.科目1评语,表3.科目2评语
from 表1
left join 表2 on 表1.学号=表2.学号
left join 表3 on 表1.学号=表3.学号