关于高频读写 mysql 数据库的设计 - V2EX
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
wsldl123292
V2EX    MySQL

关于高频读写 mysql 数据库的设计

  •  1
     
  •   wsldl123292 Dec 31, 2019 7081 views
    This topic created in 2348 days ago, the information mentioned may be changed or developed.

    有一个需求,是从 kafka 读取数据入 mysql,数据要保证实时性,要及时入库和查询, 现在是的数据量大概每天 30 万,基本是每秒 4 条的频率 现在的问题是在写入的同时再去查库,会导致查询变慢,有什么好的方案吗?

    由于硬件限制,只有台 8g 的机器,没有办法分布式多节点

    Supplement 1    Dec 31, 2019
    一台机器,8g 内存,要部署 kafka,mysql,web 应用
    Supplement 2    Dec 31, 2019
    机器加不了,客户要求,没办法
    29 replies    2019-12-31 18:25:05 +08:00
    netnr
        1
    netnr  
       Dec 31, 2019
    当天 30 万的数据用内存,隔天(半天、小时)入库
    wsldl123292
        2
    wsldl123292  
    OP
       Dec 31, 2019
    @netnr 我要实时查询的
    wsldl123292
        3
    wsldl123292  
    OP
       Dec 31, 2019
    一台机器,8g 内存,要部署 kafka,mysql,web 应用
    opengps
        4
    opengps  
    &bsp;  Dec 31, 2019
    每秒 4 条,写入压力并不大,但是大量读取,你得用从库了
    opengps
        5
    opengps  
       Dec 31, 2019   1
    缓存解决,把最新数据留在内存里,查询时候不用去硬盘
    kop1989
        6
    kop1989  
       Dec 31, 2019
    写库 30 万条还算可以,关键是查询压力如何?查询跨度如何?得说明白才好分析。
    widdy
        7
    widdy  
       Dec 31, 2019
    内存表。
    wsldl123292
        8
    wsldl123292  
    OP
       Dec 31, 2019
    @kop1989 做了分表处理,主表基本会保持在 2000w 左右的数据,查询是跨 3 到 4 张表
    lhx2008
        9
    lhx2008  
       Dec 31, 2019 via Android
    一次拿多条,一条语句插完全没有问题,查询看你是索引还是文本,查的量有多少,我建议写多一份 redis 或者是 LSM Tree 的数据库。kafka 的数据等 mysql 落库再删。
    wsldl123292
        10
    wsldl123292  
    OP
       Dec 31, 2019
    @lhx2008 数据还有各种查询条件,还要做到实时展示,不好弄 redis
    optional
        11
    optional  
       Dec 31, 2019
    每秒 4 条并不算高,看过查询计划哪一步比较慢吗?理论上并不会慢,调个参数试试?
    encro
        12
    encro  
       Dec 31, 2019
    查询慢 explain 看看结果?
    确定查询满是因为写导致的吗?
    encro
        13
    encro  
       Dec 31, 2019
    每天 30 万真的不多。
    阿里云最便宜的 rds,也可以支持每天 30 万订单(订单明细,日志等加起来肯定不止 30 万)。
    wsldl123292
        14
    wsldl123292  
    OP
       Dec 31, 2019
    @encro 大部分的 sql 都看过了,都走了索引,把写停掉就能快不少
    p23XnFNH1Wq953rV
        15
    p23XnFNH1Wq953rV  
       Dec 31, 2019
    读写分离
    encro
        16
    encro  
       Dec 31, 2019
    @wsldl123292
    写是无序的( innodb 主键不连续)导致索引重建或者锁表?

    1,开启慢日志吧;
    2,然后 show full processlist,看处于什么状态。
    authony2020
        17
    authony2020  
       Dec 31, 2019
    30 万不大吧,配置确实有点低
    sudoz
        18
    sudoz  
       Dec 31, 2019
    每秒 4 条插入,不是常规理解的“高频写”
    wsldl123292
        19
    wsldl123292  
    OP
       Dec 31, 2019
    @encro 应该是,主键是 uuid
    encro
        20
    encro  
       Dec 31, 2019
    @wsldl123292
    主键不能是 UUID,会导致索引重排(除非你 UUID 是递增的参考另外一个帖子使用 SnowFlake )
    wangyzj
        21
    wangyzj  
       Dec 31, 2019
    这个配置,每天 30w,如果你不是一次读这么多的话应该足以
    zunceng
        22
    zunceng  
       Dec 31, 2019
    有硬件限制 不建议搞什么主从了 可以做一些索引的优化

    就像 @encro 提到的用 snowflake ( int64 ) 做主键 不要用 string
    wsldl123292
        23
    wsldl123292  
    OP
       Dec 31, 2019
    @wangyzj 就是每次读一天的,当然是分页
    fancy111
        24
    fancy111  
       Dec 31, 2019
    我有台 1H2G 的机器也想这么做。。。
    aloyuu
        25
    aloyuu  
       Dec 31, 2019 via Android
    内存临时存储数据,宕机时,内存数据如何挽救?
    wysnylc
        26
    wysnylc  
       Dec 31, 2019
    让你客户去屎吧
    wangyzj
        27
    wangyzj  
       Dec 31, 2019
    @wsldl123292 spa 全读出来然后前端分页?
    luozic
        28
    luozic  
       Dec 31, 2019
    读取的是啥内容?
    jimrok
        29
    jimrok  
       Dec 31, 2019
    分表,因为更新的时候,会加锁限制读到脏数据,分表可以避免不相关的加锁,同时索引更新会更快。或者你允许客户脏读。
    About     Help     Advertise     Blog     API     FAQ     Solana     906 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 73ms UTC 19:45 PVG 03:45 LAX 12:45 JFK 15:45
    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