MySQL主从同步机制及同步中的问题处理

归类于数据库技术 3 条评论

大型网站架构中,MySQL主从配置是必不可少的,尤其对于Drupal这样数据库访问频繁的框架极为重要。基本的MySQL主从配置大家都比较熟悉,但是在主从配置的结构中,由于多种原因,主从配置经常出现无法同步,以及MySQL由于主从配置的原因而崩溃或者Down机,这里就本人的经验做一些简单介绍。

阅读全文 《MySQL主从同步机制及同步中的问题处理》

20,129 Views , , ,

MYSQL获取随机结果集的解决方案

归类于数据库技术 一条评论

在我们的业务需求当中,经常有需要取得随机结果的需求,比如随机会员,随机文章列表,随机文章跳转等等,我们大家都知道MYSQL的ORDER BY RAND()有性能问题,本文翻译自国外的一篇博文,大家来学习一下作者是如何解决这个问题的,这个解决方案具有在生产环境中实施的可行性。

译文开始:

作为第一个例子,我们假设数据的ID从1开始,并且在1和最大值之间是连续的。

把事情交给应用层(PHP, JSP, Python, Ruby …)

第一个思路:我们可以简化整个工作,如果我们可以预先在应用层计算出随机ID

SELECT MAX(id) FROM random;
## 在应用层生成随机ID <random-id>
SELECT name FROM random WHERE id = <random-id>

因为MAX(id) == COUNT(id), 我们仅仅是在1和最大值之间生成了随机数,然后传给数据库取出随机记录。

第一个SELECT是已经被优化好的,不需要任何计算。第二个是eq_ref(参见MYSQL EXPLAN语句)是一个常量,所以也非常快。

把事情交给数据库

在应用层做这件事真的是必要的么?我们不能在数据库中做么?
阅读全文 《MYSQL获取随机结果集的解决方案》

2,799 Views , , , ,

Drupal北京聚会主题之 – Apache Solr

归类于数据库技术 | 服务器技术 6 条评论

此文是 “drupal北京秋季聚会”的演讲主题之一《Drupal search和Apache solr应用》,这里做一个简单介绍以及附件下载。
关于Drupal的性能优化讲座的PPT请参考《让猪去飞-Drupal性能优化经验贴》。

内容列表:
1. Drupal Search介绍及原理
2. Apache Solr和Luncene原理介绍
3. Drupal和apachesolr模块
4. Apache Solr的扩展 

阅读全文 《Drupal北京聚会主题之 – Apache Solr》

2,116 Views , ,

MySQL InnoDB数据库备份与还原

归类于数据库技术 一条评论

MySQL数据库MyISAM类型的备份和管理很方便,本文就如何备份还原InnoDB数据库做一下经验分享。

首先,为什么要这么做呢,因为我工作于一个大型drupal项目,数据库文件很大,而且每个新特性都在分支上进行开发,这样意味着我需要搭建多个本地环境,并且经常需要删除旧的分支,建立新的分支。

由于数据库使用的大部分是InnoDB引擎,而InnoDB在分配了空间以后是不释放,也不可以被重用的(这里可能是我还没找对方法),所以由于我这样频繁的建立和删除数据库导致了InnoDB的数据库文件越来越大。所以决定给数据库文件瘦身。

InnoDB的数据库文件默认是公用ibdata1,在我本地已经达到17G之多,并且还在不断变大。

以下是瘦身步骤,注意瘦身之前对原始的ibdata1文件做好备份。
阅读全文 《MySQL InnoDB数据库备份与还原》

983 Views ,

在Drupal的数据库层应用MySQL Master/Slave

归类于Drupal | 其他 | 数据库技术 7 条评论

关于drupal性能的优化,文章Drupal高性能经验漫谈中提及多种方法,但在数据库的架构方面,我们还没有讨论到MySQL的主从架构,即Master/Slave如何在drupal中应用。

众所周知,MySQL的master/slave模式对于提高数据库访问层的性能是非常有效的,本文就在Drupal中如何应用mysql当master/slave做一下简单介绍。

默认情况下Drupal6并不支持master/slave结构,即使是Drupal的Pressflow版本,也是只提供相关函数,并不能把已有的db_query定向到slave数据库,因此有必要在drupal到query机制中加入router的功能。

根据Drupal.org上面这篇文章的讨论,笔者总结了一下,并作了相应的改良,http://drupal.org/node/469274
阅读全文 《在Drupal的数据库层应用MySQL Master/Slave》

1,046 Views , , ,

顶部