该如何使用thinkphp分表呢?
thinkphp分表怎么使用
我预设了10个表 分别是 table_1、table_2、table_3....table_10
也使用了getPartitionTableName()
官方文档说是必须传入当前的数据。然后根据数据分析应该实际操作哪个数据表
而这个传入当前数据是什么数据, 我每次实验的结果都是联合查询!不能找到当前表名!
------解决方法--------------------
你的分表字段是 id (PS:T不错的PHP Q扣峮:276167802,验证:csl)
所以在传给 getPartitionTableName 的数据数组中必须含有关联键为 id 的元素
不过他的算法有点奇特
按照你的设置,似乎应是 'type' => 'mod'
------解决方法--------------------
你用 getPartitionTableName 取得的不就是表名吗?
我预设了10个表 分别是 table_1、table_2、table_3....table_10
在Model中设置了partition:
protected $partition = array('field' => 'id','type' => 'id','expr' => '','num' => 10,);
也使用了getPartitionTableName()
官方文档说是必须传入当前的数据。然后根据数据分析应该实际操作哪个数据表
而这个传入当前数据是什么数据, 我每次实验的结果都是联合查询!不能找到当前表名!
------解决方法--------------------
你的分表字段是 id (PS:T不错的PHP Q扣峮:276167802,验证:csl)
所以在传给 getPartitionTableName 的数据数组中必须含有关联键为 id 的元素
不过他的算法有点奇特
$field = $data[$this->partition['field']]; switch($this->partition['type']) { case 'id': // 按照id范围分表 $step = $this->partition['expr']; $seq = floor($field / $step)+1; break;......... return $this->getTableName().'_'.$seq;
按照你的设置,似乎应是 'type' => 'mod'
case 'mod': // 按照id的模数分表 $seq = ($field % $this->partition['num'])+1; break;
------解决方法--------------------
你用 getPartitionTableName 取得的不就是表名吗?
有了表名不就和不分表时一样操作了吗?
以上是本文关于thinkphp分表如何使用的方法,希望本文对广大php开发者有所帮助,感谢阅读本文。
>更多相关文章
- 02-25谷歌推行Tango 3D智能视效手机开发项目
- 12-22php $_server应用
- 12-22PHP 解决一次因压缩代码引发的死循环
- 12-22php jquery 多文件上传
- 12-22该如何使用thinkphp分表呢?
- 12-22thinkPHP模板的输出和模型的使用
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 11-18LG新能源宣布与Bear Robotics达成合作,成为
- 11-18机构:三季度全球个人智能音频设备市场强势
- 11-18闲鱼:注册用户过6亿 AI技术已应用于闲置交
- 11-18美柚、宝宝树回应“涉黄短信骚扰”:未发现
- 11-01京东七鲜与前置仓完成融合
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御