webman mysql数据表数据超过1000W了 怎么实现分表喃?

manman10

webman mysql数据表数据超过1000W了 怎么实现分表喃?

2217 7 7
7个回答

不败少龙

laravel的分表 和tp的分表

  • liangnian 2022-09-12

    public function getTableName(){
    $date=date("Ym",time());
    $table = $this->name . $date;
    $real_table = 'web_' . $this->name . $date;
    $result = DB::query("SHOW TABLES LIKE "."'".$real_table."'");
    if($result){
    return $table;
    }else{
    $sql = "CREATE TABLE ". $real_table ." (
    id int(10) unsigned NOT NULL AUTO_INCREMENT,
    member_id int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'memberID',
    wechat_id int(10) unsigned NOT NULL DEFAULT '0' COMMENT '微信表ID',
    project_id int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'projeceId',
    device_id int(10) unsigned NOT NULL DEFAULT '0' COMMENT '门禁id',
    create_time int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
    PRIMARY KEY (id),
    KEY project_id (project_id),
    KEY member_id (member_id),
    KEY device_id (device_id),
    KEY wechat_id (wechat_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='记录表'";
    $res=$this->execute($sql);
    return $table;
    }
    }

  • manman10 2022-09-12

    非常感谢

evilk

1000w就分表?
我们单表5000w,照样跑

  • manman10 2022-09-12

    是一天增加1000W

  • banro512 2022-09-12

    一天一千万,分表恐怕也不好使,按月分,一月也得三亿条

    感觉应该根据业务,进行老数据存档或针对这类表选用其他非关系性数据库

  • liziyu 2022-09-12

    一天1000W条?还用mysql?没有DBA?呵呵

  • fk 2022-10-11

    啥业务啊,一天1000W

稚出

一天1000w还用啥mysql啊

  • 暂无评论
yjn

是什么业务场景啊 我也有一个人脸打卡的模块 数据量每天产生的打卡记录也多 目前根据项目id1-10分一张表

  • 暂无评论
JonWong

老哥,最后怎么解决的了?说下解决办法吧

  • manman10 2022-10-11

    自动分表就可以呀

  • manman10 2022-10-11

    数据库容量弄大一点 比如500G 够用10年了

ysxpark

这种数据应该用mongo或者列存储

  • ysxpark 2022-10-12

    分表爽一时,后期维护才是麻烦事

不败少龙
use support\Db;
use support\Model;
class DemoModel extends Model
{
    protected $table="demo";
    public function __construct(array $attributes = [])
        {
            $data_table = $this->getTable();
            $this->table = $data_table.date('Ym');
            $result = Db::schema()->hasTable($this->table);
            if (empty($result)) {
                Db::update('create table '  . $this->table . ' like ' .   $data_table);
            }
            parent::__construct($attributes);
        }
}
年代过于久远,无法发表回答
🔝