Drupal系统A/B Test解决方案

归类于Drupal 2 条评论

引言

本文是我在工作中遇到A/B Test的需求,经过几天的研究的一篇心得笔记,不一定多专业,希望能给有类似需求的同行一些参考和灵感,在学习的过程中,也发现一些比较优秀的国外博文,我打算在近期翻译几篇,而不是把只言片语融入到本文当中,本文的重点仍然是drupal A/B Test的解决方案,介绍性的文字来源于最近几天的学习心得,是给不熟悉A/B Test的同行的一些入门介绍。

阅读全文 《Drupal系统A/B Test解决方案》

1,753 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,140 Views , , , ,

顶部