› 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
mulog
V2EX  ›  MySQL

MySQL 冷热数据分离一问

  •  
  •   mulog · Sep 13, 2015 · 11872 views
    This topic created in 4030 days ago, the information mentioned may be changed or developed.
    基本上来说有一个表,随时有新数据进来,但是 99.99%的访问都只是最近一周的数据。
    随着时间越来越长,这个表变得越来越大,即使有索引, query 也还是不够快。

    所以想请问有没有什么方案可以把最近一周的“新鲜”数据和老的数据分离开?
    我能想到的只有搞个 cron 每天把一周前的数据移到另一个表,但是这显然太挫了。。-_-
    14 replies  •  2018-01-08 16:16:21 +08:00
    msg7086
        1
    msg7086  
       Sep 13, 2015 via Android   ❤️ 1
    挫毛,能解决问题的方案就是牛逼方案
    humiaozuzu
        2
    humiaozuzu  
       Sep 13, 2015   ❤️ 1
    那就加缓存
    而且,标准做法就是 archive 旧数据,一点也不搓
    lavadore
        3
    lavadore  
       Sep 13, 2015   ❤️ 1
    按时间分表或者分区咯
    kslr
        4
    kslr  
       Sep 13, 2015 via Android   ❤️ 1
    一个月一张表
    9hills
        5
    9hills  
       Sep 13, 2015 via iPad   ❤️ 1
    这个真的不搓,是标准做法。
    Aliencn
        6
    Aliencn  
       Sep 14, 2015   ❤️ 1
    如果你是负责存储的,那就上 SSD 阵列
    如果你是负责数据库的,那就搞分区或分表
    如果你是负责 web 端的,那就写数据库的时候就按照时间自动创建表,读数据库的时候根据请求查不同的表
    brucefeng
        7
    brucefeng  
       Sep 14, 2015   ❤️ 1
    @Aliencn 说的很实在。
    如果是应用层:
    1 、加缓存:这个可以缓解数据库的访问量
    2 、最近一周的数据和老数据分表。如果不想按时间自动创建表,可以一开始就两张表,一张存全量的表 A ,一张存最近一周的表 B ,使用定时任务定期清理表 B 。
    maskerTUI
        8
    maskerTUI  
       Sep 14, 2015 via Android   ❤️ 1
    分表!!!!!
    jziwenchen
        9
    jziwenchen  
       Sep 14, 2015   ❤️ 1
    从总表查数据 搬到一个分表去 然后不断 cron.
    realpg
        10
    realpg  
       Sep 14, 2015
    分表到你这里就变成挫了……
    好吧 已经挫了十年的苦逼程序员飘过
    mulog
        11
    mulog  
    OP
       Sep 14, 2015
    谢谢大家 看来暂时用 cron 搞迁移就可以了 ^^
    mulog
        12
    mulog  
    OP
       Sep 14, 2015
    @realpg
    大神不要这样 情何以堪
    顺便问一下有什么工具推荐吗? 看了一下 pt-archiver 似乎还行,不知道有没有更好的?还是一般自己写脚本?
    realpg
        13
    realpg  
       Sep 14, 2015
    @mulog
    MYSQL 的单表查询性能比较差的,所以分表都成基本技能了,只要做一些数据量会大一点的东西,基本大多数会涉及分表。
    coder2cooker
        14
    coder2cooker  
       Jan 8, 2018
    数据迁移过程中存在频繁的删除,是否会导致表空间的浪费以及查询索引效率的降低?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   938 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 19:09 · PVG 03:09 · LAX 12:09 · JFK 15:09
    ♥ Do have faith in what you're doing.