- 论坛徽章:
- 0
|
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 PowerEdge 1850,如果是在有 RAID 5 的服务器上性能肯定还要更好。 |
|