网站大量收购闲置独家精品文档,联系QQ:2885784924

HybridDBforMySQL.PDF

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HybridDBforMySQL.PDF

HybridDB for MySQL 最佳实践 HybridDB for MySQL 最佳实践 最佳实践 分区表的设计 用户存有海量数据的表应该按照数据规模进行拆解,表的数据将拆解成多个数据分区独立存储,通常的设计原 则是: 主键(Primary Key) 单实例数据库不要求表一定要有主键,但是对于分布式数据库,主键则是必须的,以保证一行数据是全局唯一 的,避免迁移过程出现问题。如果用户没有特殊的性能需求或业务耦合问题,则应将主键设计为无意义的整数 值或者自增的; 分区键(Partition Key) 用户的分区表必须按照一种维度进行数据划分,用户在按照分区键维度进行查询时,就能做到线性性能增长 ,分区键通常有如下选择方法: 1) 按业务ID切分,如用户ID、商品ID等,适合每个业务ID的数据较均匀且查询简单的场景; 2) 按多个业务维度切分,用户建立多张表存入相同数据,但是每张表按照不同业务维度切分,查询时根据过滤 条件选择不同的表,以提升访问性能,适合查询复杂且单一切分方式不能满足需求的场景; 3) 按自增主键切分,若表分区方式为分区表,主键为自增,且该字段同时为分区键,则此时写入为随机分区 ,按照非主键查询时需要读取所有分区,适合有数据偏斜且写多读少的场景; 4) 至少保证在分区键上有一个索引; 业务列 其它的列统归为此类,仅用于存储数据,通常要考虑:1) 列不宜过长,够用即可,临时加载的长列会消耗额外 内存,影响查询性能;2) 准确定义列的类型,避免查询时使用的类型与表定义的类型不匹配,从而进行类型转 换,以致不能正确使用索引;3) 优先使用timestamp类型代替其它时间日期类型,且使用时严格遵守mysql的 时间日期格式; 主键索引 若主键是自增类型,则主键索引不会对整体性能优化有改善,若主键与业务相关,则可以对最频繁使用的 SQL语句的查询条件建立主键索引,这样可以提升性能; 1 HybridDB for MySQL 最佳实践 辅助索引 其他情况下,如果不能通过将SQL语句拆解成单分区的,且不能利用主键进行索引优化时,需要对全部分区进 行扫描,此时可以对这部分全分区扫描的语句的查询条件建立索引,使得在每个分区上进行访问时,仍然能取 得较高的性能 *注:HybridDB for MySQL 目前暂不支持广播表(广播表的数据在每个数据分区均有相同副本,用于与分区 表进行join) 常用优化包括 1) 合理的选择拆分字段。选择拆分字段时需要综合考虑查询性能、分布式事务、热点、数据迁移等多个因素;

文档评论(0)

tangtianxu1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档