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

请教下这样的需求数据库怎么设计?

  •  
  •   hennywei · Apr 11, 2013 · 4451 views
    This topic created in 4919 days ago, the information mentioned may be changed or developed.
    按天统计用户的数据,比如关注数 发帖 帖子被浏览数等,想了几个方案按天分表day1 day2.。。。或者塞进一个表里,求更好的建议!!
    4 replies  •  1970-01-01 08:00:00 +08:00
    wy315700
        1
    wy315700  
       Apr 11, 2013   ❤️ 1
    一张表表示今天的
    一张表表示历史数据
    每天0点的时候把今天的数据塞进历史数据中
    fywtat
        2
    fywtat  
       Apr 12, 2013   ❤️ 1
    @wy315700 如果项目不是特别大,一张表放一个月也行!
    shunai
        3
    shunai  
       Apr 12, 2013   ❤️ 1
    一张表保存这些数据,每次往cache中更新,一段时间持久化到数据库,每次从cache读
    foxidea
        4
    foxidea  
       Apr 12, 2013
    表结构:

    [TableName]
    YEAR (年)
    MONTH (月)
    DAY (日)
    Times (次数)
    UserId (用户ID)


    假设要用到用户2个月的统计数据,那就是 删除掉 二个月以前的数据


    如果有 10万用户,那么表的最大数据量就是 10万 * 30天 * 2个月 = 600 万 条数据

    所以考虑分表,分表不能按照日期进行分表,因为一个用户的数据,要在一张表里面,才便进行聚合运算

    把表名进行命名 按照用户ID 把用户ID 反过来 取 3位

    如用户ID 为 123456789

    统计信息 存储在 tableName = "table_"+987;

    然后再进行存储
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5141 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 03:11 · PVG 11:11 · LAX 20:11 · JFK 23:11
    ♥ Do have faith in what you're doing.