文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql分区表笔记

2024-04-02 19:55

关注
mysql分区表
   mysql分区表是一个独立的逻辑表,但是底层由多个物理字表组成。
   对分区的请求,都会通过句柄对象转化成对存储引擎接口的调用。所以分区对于
对于sql层来说是一个完全封装底层实现的黑盒子,对应用是透明的。
   Mysql实现分区表的方式--对底层表的封装--意味着索引也是按照分区的字表定义的,而没有全局索引。
适合场景:
   表中只有最后部分数据是热点数据,其他均为临时数据。
   分区表中数据更容易维护,可以对独立的分区进行优化,检查、修复等操作
   分区表数据可以分布在不同物理设备上,从而高效地利用多个硬件设备
   可以备份和恢复独立的分区,这在非常大的数据集的场景下效果非常好。
   
分区限制:
   一个分区表只能有1024个分区
   如果分区字段中有主键或者唯一索引的列,那么所有主键列和唯一索引列都必须包含进来。
   利用分区表来避免某些特殊的瓶颈,例如Innodb的单个索引的互斥访问ext3文件系统的inode锁竞争等。
   分区表无法使用外键约束。
   
分区表的原理
   从存储引擎的角度来看,底层表和一个普通的表没有任何不同,存储引擎也无需知道这是一个普通表还是一个分区表的一部分。
   
select查询
   分区表的类型
   mysql支持多种分区表。分区表达式可以是列,也可以是包含列的表达式。例如,下表就可以将每一年的销售额存放在不同的分区里。
   create table  sales(
   order_date datetime not null,
   --Other columns 
   )engine=InnoDB partition by range(Year(order_date))(
   partition  p_2010  values  less then (2010),
   partition p_2011   values  less then(2011),
   partition p_catchall values  less then maxvalue);
   
   mysql还支持键值,哈希和列表分区。
   系统通过子分区可降低索引的互斥访问的竞争。最近一年的分区的数据会被非常频繁地访问,这会导致大量的互斥锁的竞争。使用哈希子分区可以
将数据切成多个小片,大大降低互斥量的竞争问题。
   
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯