小白请教大量数据的数据库设计问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dyingfair
V2EX    Redis

小白请教大量数据的数据库设计问题

  •  
  •   dyingfair 2018-06-16 19:56:23 +08:00 3116 次点击
    这是一个创建于 2741 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位好。刚刚学习数据库,遇到一个需求,请求大家给建议。

    我这里有大量的股票行情数据,格式如下:

    股票 1、时间(年月日时分秒毫秒)、当前价、成交量、涨停价、跌停价、买一价、卖一价......

    600000、20180604093000000、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000100、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000400、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000700、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000000、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000100、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000400、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000700、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000000、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000100、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000400、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600000、20180604093000700、10.23 、30000、11.00 、9.00 、10.23 、10.34

    .....

    600001、20180604093000000、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600001、20180604093000100、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600001、20180604093000400、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600002、20180604093000000、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600002、20180604093000100、10.23 、30000、11.00 、9.00 、10.23 、10.34

    600002、20180604093000400、10.23 、30000、11.00 、9.00 、10.23 、10.34 .....

    这些行情数据保存的数据库,目前初步想使用 redis+mysql。redis 里加载 mysql 的数据,便于快捷查询。每一条行情大概有 25 个属性 需求是: ( 1 )当前开盘的数据实时更新到数据库(初步打算:先写到 mysql,然后再更新到 redis ) ( 2 )每次 redis 里加载的股票的数量不多,大概 20 个。毕竟每次看上的股票不多 ( 3 )可以让客户端查询最近最多一个月的行情数据,每次查询的数据可能是某个时间段(例如是当前时间至一小时前),也可能是查询某一个股票的某一天所有数据。 考虑到内存问题,每次支持查询的时间段长度还要测试测能知道, ( 4 )可以让客户端查询从某个时间段开始或之前的 N 条数据。

    目前设计的想法是,使用 list,使用每个股票作为一个 key,然后把每一次的数据都按顺序 push 到列表里,例如把一条行情数据的 25 个属性 push 到 key 里,如果 100 条行情,就有 2500 个元素。30 天的数据大概最多有 8640 万个元素(假设每秒最多 8 次行情数据)

    ( 1 )如果是查询时间段,那么先在对应 list 里把时间段开始的数据找到,然后把 M 个元素一次读出(时间段的秒数 * 8 * 25 (每条记录有 25 个属性)),取出后,把多余的数据踢掉(因为有些数据可能超过这个时间段) ( 2 )如果查询时间段开始或之前 N 条记录,那么这个好办,在对应 list 里把时间段开始或之前的数据找到,读取 N*8 个元素。

    不知道以上的想法是否合理,如果更好的建议,欢迎不吝赐教

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1301 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:10 PVG 01:10 LAX 09:10 JFK 12:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86