小编dye*_*ryn的帖子

3500万行+表的有效mysql表/索引设计,200+对应列(双列),任意组合均可查询

我正在寻找有关以下情况的表/索引设计的建议:

我有一个带有复合主键(assetid (int),date (date))的大表(股票价格历史数据、InnoDB、3500 万行并且还在增长)。除了定价信息之外,我还有 200 个双值需要对应于每条记录。

CREATE TABLE `mytable` (
`assetid` int(11) NOT NULL,
`date` date NOT NULL,
`close` double NOT NULL,
`f1` double DEFAULT NULL,   
`f2` double DEFAULT NULL,
`f3` double DEFAULT NULL,   
`f4` double DEFAULT NULL,
 ... skip a few …
`f200` double DEFAULT NULL, 
PRIMARY KEY (`assetid`, `date`)) ENGINE=`InnoDB` DEFAULT CHARACTER SET latin1 COLLATE
    latin1_swedish_ci ROW_FORMAT=COMPACT CHECKSUM=0 DELAY_KEY_WRITE=0 
    PARTITION BY RANGE COLUMNS(`date`) PARTITIONS 51;
Run Code Online (Sandbox Code Playgroud)

为了便于更新和检索,我最初将 200 个双列直接存储在该表中,这一直工作正常,因为在该表上进行的唯一查询是通过资产 ID 和日期(这些都被虔诚地包含在针对该表的任何查询中) ),并且只读取了 200 个双列。我的数据库大小约为 45 Gig

但是,现在我需要能够通过这 200 …

database-design partitioning mysql-5.5 index-tuning

17
推荐指数
1
解决办法
3784
查看次数