Drupal 7 开发内部培训资料, 分头诗人

请问一下D7做读写分离,是不是要改底层的方法呢?

赞成!
0
否决!

先在setting.php里修改配置

$databases['default']['default'] = $info_array;  (写,主)
 $databases['default']['slave'][] = $info_array;( 读,从)
 $databases['default']['slave'][] = $info_array;(读,从)
$databases['default']['slave'][] = $info_array;(读,从)

然后在includes/database/database.inc里修改

function db_update($table, array $options = array()) {
  if (empty($options['target']) || $options['target'] == 'slave') {
    $options['target'] = 'default';
  }
  return Database::getConnection($options['target'])->update($table, $options);
}

或者

function db_insert($table, array $options = array()) {
  if (empty($options['target']) || $options['target'] == 'slave') {
    $options['target'] = 'default';
  }
  return Database::getConnection($options['target'])->insert($table, $options);
}

或者

function db_merge($table, array $options = array()) {
  if (empty($options['target']) || $options['target'] == 'slave') {
    $options['target'] = 'default';
  }
  return Database::getConnection($options['target'])->merge($table, $options);
}

怎么修改为好呢?googl了好久,也没找到理想的答案。请做过读写分离的同学指点一下,谢谢了

2 个回答

赞成!
0
否决!

做网站数据读写分离,是比较困难。个人见的,其实你不要局限在搜索 Drupal 如何实现数据读写分离,而是应该搜索 php + mysql 实现数据读写分离,看明白其原理后,再建一个Drupal 模块,把原理套进去Drupal中实现。这样比较好。

赞成!
0
否决!

AutoSlave                                --  自动为数据库请求选择mysql slave,读写分离,潜力无限