• 湖州:展国学魅力 扬传统礼仪(图) 2020-02-19
  • 湖南宁远通报7起党员干部案件:涉贩毒开设赌场等 2020-02-19
  • 新房才砌半堵墙 装修公司“跑路”了 2020-02-18
  • 2018亚洲消费电子展 车企携手科技公司或成共赢新趋势 2020-02-18
  • 行书书法欣赏,行书就是讲究行云流水般书写自如 2020-02-10
  • 高清:中国男篮抵达洛杉矶 长途飞行队员略显疲惫 2020-02-10
  • 一进门就被惊艳到,玄关还可以这样做?! 2020-02-04
  • 70年 使命·梦想·荣光 2020-02-01
  • 帕巴拉·格列朗杰简历 2020-01-30
  • 重庆的底气,都在人口规划里了 2020-01-30
  • 降电价,还有哪些空间(聚焦高质量发展·降低企业用能成本④) 2020-01-29
  • 主力资金近三日大量撤出这些概念股 2020-01-29
  • 用药晚一步,起效来不及 2020-01-27
  • 第535期:草莓被评“最脏水果”?!真OR假 2020-01-27
  • 资本导向的结果。[上火][上火] 2020-01-22
  • TP5.1分表,partition分表

    浏览:230 发布日期:2020/01/06 分类:业务逻辑 关键字: partition 分表
    TP5.1分表,partition分表实例,根据非主键水平分表
    模型<?php
    namespace app\common\model;

    use think\Model;

    class WalletLog extends Model
    {
        protected $table = 'tb_walletlog';
        protected $pk = 'walletid';
        
        private function getRule(){
            return [
                'type' => 'mod', // 分表方式
                'num'  => 3     // 分表数量
            ];
        }
        
        public function saveData($data, $user_id){
            
            return $this->partition(['user_id' => $user_id], "user_id", $this->getRule())->insert($data);
        }
        
        public function getAll($where, $field = "*", $user_id){
            return $this->partition(['user_id' => $user_id], "user_id", $this->getRule())->where($where)->field($field)->select();
        }
    }
    控制器//分表测试
        public function walletSave(){
            $WalletLogModel = new WalletLog();
            
            for($i = 1; $i < 1000; $i++){
                $data = [
                    'user_id' => $i,
                    'add_time' => time(),
                    'type' => 1,
                    'num' => 1
                ];
                $WalletLogModel->saveData($data, $i);
            }
            echo 'success';die;
        }
        public function getWallet(){
            $uid = request()->get('user_id',0);
            if($uid){
                $WalletLogModel = new WalletLog();
                $user = $WalletLogModel->getAll( ['user_id'=>$uid],'*', $uid);
                return json($user);
            }
        }
    分表设置$rule分了3个表,建表tb_walletlog_1,tb_walletlog_2,tb_walletlog_3.CREATE TABLE `tb_walletlog` (
      `walletid` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '成就id',
      `user_id` INT(11) NOT NULL COMMENT '用户id',
      `add_time` INT(10) DEFAULT NULL COMMENT '时间',
      `type` INT(1) DEFAULT NULL COMMENT '类型 1消费 2收入 3充值',
      `num` DOUBLE(20,3) NOT NULL COMMENT '数量',
      PRIMARY KEY (`walletid`)
    ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='记录';
    根据官方文档来的,一次成功了。
    评论( 相关
    后面还有条评论,点击查看>>
  • 湖州:展国学魅力 扬传统礼仪(图) 2020-02-19
  • 湖南宁远通报7起党员干部案件:涉贩毒开设赌场等 2020-02-19
  • 新房才砌半堵墙 装修公司“跑路”了 2020-02-18
  • 2018亚洲消费电子展 车企携手科技公司或成共赢新趋势 2020-02-18
  • 行书书法欣赏,行书就是讲究行云流水般书写自如 2020-02-10
  • 高清:中国男篮抵达洛杉矶 长途飞行队员略显疲惫 2020-02-10
  • 一进门就被惊艳到,玄关还可以这样做?! 2020-02-04
  • 70年 使命·梦想·荣光 2020-02-01
  • 帕巴拉·格列朗杰简历 2020-01-30
  • 重庆的底气,都在人口规划里了 2020-01-30
  • 降电价,还有哪些空间(聚焦高质量发展·降低企业用能成本④) 2020-01-29
  • 主力资金近三日大量撤出这些概念股 2020-01-29
  • 用药晚一步,起效来不及 2020-01-27
  • 第535期:草莓被评“最脏水果”?!真OR假 2020-01-27
  • 资本导向的结果。[上火][上火] 2020-01-22
  • 网赌ag真人是骗局吗 新股申购一般赚钱嘛 昨天青海快3今天开奖号 股票推荐骗局法律责任 新疆11选5开奖 天线宝宝平特一肖彩图 广东时时彩预测软件手机版下载 2012雪缘园比分 一定牛彩票网址 苹果手游赚钱平台