Chinaunix首页 | 论坛 | 博客
  • 博客访问: 568464
  • 博文数量: 302
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 4765
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-15 23:10
文章分类

全部博文(302)

文章存档

2011年(1)

2008年(301)

我的朋友

分类: 服务器与存储

2008-07-19 23:01:39

MySQL 5.0 引入了一种新的引擎 Archive,Archive 的用途主要在于把旧的历史数据归档存储。最近公司的一个广告效果统计系统(用的开源的 phpMyAds)的数据量达到了 2 千万级,而其中大部分的数据是去年的历史数据,由于和相关 vendor 的合作还没有结束所以不能删除,而这套系统现在的性能已经有些吃力。

  系统中的 2 千万条记录主要是分布在两张名为 ad_adviews 和 ad_adclicks 的表中。我在系统中执行了这两句 SQL 创建了以 Archive 引擎存储的新表 ad_adviews_archive_2005 和 ad_adclicks_archive_2005∶

  CREATE TABLE ad_adviews_archive_2005 ENGINE=archive AS SELECT * FROM ad_adviews WHERE t_stamp < '2006-01-01 00:00:00';

  CREATE TABLE ad_adclicks_archive_2005 ENGINE=archive AS SELECT * FROM ad_adclicks WHERE t_stamp < '2006-01-01 00:00:00';

  然后,在生成的新表 ad_adviews_archive_2005 中有 2,070,860 条记录,执行时间是∶

  Your SQL query has been executed successfully (Query took 48.0973 sec)

  ad_adclicks_archive_2005 中有 23,908,414 条记录,执行时间是∶

  Your SQL query has been executed successfully (Query took 466.2194 sec)

  由此可以大致算出在这个应用场景中 Archive 的 INSERT 性能大约在 51281 条记录每秒。所用的配置是一台没有配置 RAID 的 Dell ,如果是在有 RAID 5 的服务器上性能肯定还要更好

阅读(1558) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~