mysql(linux)
如何 作 一个大表的 分区   (sqlserver oracle 都做过)?目的:这个大表有700万 ,查询通常只用最新一个月的数据   (根据某个accsstime字段来划分)
所以我想做的是  把最新的一个月的数据放到一个分区  (参照accsstime字段)
其他 记录放到另外一个分区。具体不知道如何作??

解决方案 »

  1.   

    最新的一个月  是指什么? 从 2010-FEB-01 起还是 2010-Jan-22 起?如果第一种还可以,第二种则不行。
      

  2.   

    select count(distinct(userId)) number,4
    from SessionLog
    where accesstime>date_sub(date_Sub(curdate(), INTERVAL DAYOFMONTH(curdate())-1 day),INTERVAL 1 month) and accesstime <DATE_SUB(sysdate(),INTERVAL 1 month)类似 这样的查询语句 , 他是 间隔一个月    (从这个sql 可以看出)楼主可以把从 2010-FEB-01 起方法的实现大体思路 以及详细实现细节描述清楚马 ??
      

  3.   

    帮助文档中有现成的例子。mysql> CREATE TABLE employees (
        ->     id INT NOT NULL,
        ->     fname VARCHAR(30),
        ->     lname VARCHAR(30),
        ->     hired DATE NOT NULL DEFAULT '1970-01-01',
        ->     separated DATE NOT NULL DEFAULT '9999-12-31',
        ->     job_code INT,
        ->     store_id INT
        -> )
        -> PARTITION BY RANGE ( YEAR(separated)*100+MONTH(separated) ) (
        ->     PARTITION p0 VALUES LESS THAN (201001),
        ->     PARTITION p1 VALUES LESS THAN (201002),
        ->     PARTITION p2 VALUES LESS THAN (201003),
        ->     PARTITION p3 VALUES LESS THAN MAXVALUE
        -> );
    Query OK, 0 rows affected (0.38 sec)mysql>
      

  4.   

     看了 官方手册, 发现不够详细
    至少 sqlserver oracle 可以提供详细例子使用  (如查询如何制定某个分区
    如何让分区在某个文件目录)上面这2个没有在中文官方文档里 找到 ,问mysql改如何做??
    1 如何让分区在制定某个文件目录
    2 查询如何制定某个分区