基于ThinkPHP5.1扩展的分布式分表数据库存储架构,开贴记录下相关重要代码
1年前
阅读 6695
评论 0
喜欢 4
### 核心技术
1、PHP分表存储
2、分布式服务器(数据库),主从复制
3、合表查询分页
### 分表存储代码
```php
namespace org;
class SubTable
{
// 缓存表名称地址
protected static $table_path = '';
// 缓存表名称列表
protected static $table_list = [];
// 表前缀
private static $prefix = 'tp_';
// 表中缀:TP的分表链接只能是下划线中缀
private static $in_prefix = '_';
// 表名称
private static $table = '';
// 单例实例
private static $instance;
// 私有化构造函数,可以保证在类外该类不能被实例化
private function __construct(){}
// 禁止克隆单例类,防止二次new
private function __clone()
{
die('此对象不允许被克隆');
}
/**
* 用于初始化单例类
* @todo 无
* @author 小黄牛
* @version v1.0.1 + 2019.05.23
* @deprecated 暂不弃用
* @global 无
* @param string $table
* @return void
*/
public static function init($table)
{
self::$table = $table;
if (!self::$instance instanceof self) {
// 生成缓存地址
self::$table_path = ROOT_PATH . DIRECTORY_SEPARATOR .'public'. DIRECTORY_SEPARATOR .'data'. DIRECTORY_SEPARATOR .'table_cache' . DIRECTORY_SEPARATOR . $table . '_cache.php';
// 获得单例
self::$instance = new self();
// 返回单例
return self::$instance;
}
return self::$instance;
}
/**
* 简单hash算法,生成表名
* @todo 无
* @autho