【问题标题】:How should I partition this table?我应该如何分区这个表?
【发布时间】:2013-07-17 00:22:52
【问题描述】:

我计划创建一个分析表。每月大约有 100 万条记录可以插入到表中。帮助我更好地优化并快速获取记录。 或者,我计划每月拆分表(在服务器上运行 cron 以创建表)所有插入都会将行插入到相应的月份表中。 这是设计表格的更好方法吗?

请对数据库设计提出建议

【问题讨论】:

  • 请记住,数据库旨在解析大量数据
  • 向我们展示表定义可能会有所帮助:但假设您要添加分析记录,最明显的是 partition 它针对创建日期列,按年或按月/年 - 但是如果您为每个月/年创建一个表格,那么您会遇到问题,例如有人想要一个季度或年度摘要,或者与去年这个月进行比较
  • code 如果不存在则创建表 webanalytics_mm_yy ( id bigint(20) NOT NULL AUTO_INCREMENT, companyid bigint(20) NOT NULL, visits_count int(8) NOT NULL , country_name varchar(64) NOT NULL, referal_source varchar(128) NOT NULL, source_name varchar(128) NOT NULL COMMENT '这基于来源给出名称', created_date datetime NOT NULL, @987654331 @ varchar(128) NOT NULL, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=63 ;

标签: mysql database-design


【解决方案1】:

我建议对数据库进行分片。更多信息可以在这里找到importance of sharding

并接近MySQL sharding。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2016-11-26
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多