开发者社区> 航空母舰> 正文

Discuz!X/多数据库配置与使用方法

简介:
+关注继续查看

在Discuz!x中,是可以方便的使用多数据库的,可以单独的配置不同的数据库连接。作用估计起来有以下两个好处。

  1. 如果负载足够搞,是可以把很一些表分布在多台数据库服务器中。这样来减小负载
  2. 可以方便的使用别的数据库中的数据。
  3. 还可以把帖子分表,分到不同的数据库服务器中 将帖子拆分到其他数据库

配置方法

在/config/config_global.php 文件中增加数据表和服务器之间的映射关系,还有相应数据库服务器配置。加入以下代码

Java代码  收藏代码
  1.  //2的意思是随后配置的数据库连接参数  
  2. $_config['db']['map']=array('表名'=>'2');  
  3.   
  4. //这里面2对应映射配置  
  5. $_config['db']['2']['dbhost'] = 'localhost';  
  6. $_config['db']['2']['dbuser'] = 'root';  
  7. $_config['db']['2']['dbpw'] = '';  
  8. $_config['db']['2']['dbcharset'] = 'gbk';  
  9. $_config['db']['2']['pconnect'] = '0';  
  10. $_config['db']['2']['dbname'] = '数据库名';  
  11. //这个参数其实没有用,要照我随后的修改就可以用了  
  12. $_config['db']['2']['tablepre'] = 'cdb_';  
 

使用方法

在程序中使用就很方便了。直接使用DB静态对象

Java代码  收藏代码
  1. print_r(DB::fetch_first("SELECT * FROM ".DB::table('表名')." limit 1"));   

注意事项

  1. 一定要使用DB::table方法,因为通过这个方法来转换数据库连接。
  2. 一些联表查询不能使用
  3. 外联数据库的表前缀一定得和现在的表前缀一样。如 pre_表名

一些额外的修改

如果需要使用其它数据库的非Discuz的表,可以修改 class_core 的 table_name 函数,这样就不用限制 pre_ 表前缀了。而且配置中的数据库前缀也可以用了。

Java代码  收藏代码
  1. function table_name($tablename) {  
  2.     if(!empty($this->map) && !empty($this->map[$tablename])) {  
  3.         $id = $this->map[$tablename];  
  4.         if(!$this->link[$id]) {  
  5.             $this->connect($id);  
  6.         }  
  7.         $this->curlink = $this->link[$id];  
  8.         //增加了这一句  
  9.         return $this->config[$id]['tablepre'].$tablename;  
  10.     } else {  
  11.         $this->curlink = $this->link[1];  
  12.     }  
  13.   
  14.     return $this->tablepre.$tablename;  
  15. }  

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL基础知识(一)-超详细Windows系统安装MySQL详细教程
原计划,今天这篇想要给小伙伴们讲解一下python操作mysql数据库,但是由于近期换了一台新的电脑,所以一看mysql数据库都没安装,所有才有了这篇文章。尽管网上不乏此类型的文章,但是刚好自己要安装,所以就总结和分享一下下了
70 0
phpstudy的基本使用方法
小皮面板下载地址 安装之后的界面:
32 0
MySql开发笔记:MySql数据库服务搭建以及建表脚本导入
MySql开发笔记:MySql数据库服务搭建以及建表脚本导入
96 0
MySQL5.7.14-下载安装教程-->MySQL数据库语句详细教程(1)
MySQL5.7.14-下载安装教程-->MySQL数据库语句详细教程
128 0
MySQL 数据库linux系统下修改配置文件设置mysql是否大小写敏感实例演示
MySQL 数据库linux系统下修改配置文件设置mysql是否大小写敏感实例演示
92 0
如何使用phpMyAdmin导出Joomla数据库
我们收到一位读者的请求,请求讲解有关使用Joomla数据库的更详细说明。 那么今天在本教程中,我将通过展示如何手动导出Joomla数据库来帮助回答他的请求。 要执行本文中的任务,需要在服务器上安装phpMyAdmin。
1042 0
mysql + SQLyog 配置安装教程(完整版)
mysql + SQLyog 配置安装教程(完整版)
15855 0
windows系统-phpstudy升级mysql8.0.12安装教程及修改密码和安装注意事项
原文:windows系统-phpstudy升级mysql8.0.12安装教程及修改密码和安装注意事项 1、下载安装包,下载地址:mysql8.0.12  。如果你想要下载其它版本可以选择:mysql历史版本地址。
1740 0
+关注
航空母舰
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
阿里云数据库案例集下载
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载