Доброго времнеи суток
Есть около десятка таблиц разных по структуре  в которых по паре миллиардов сторк, соответственно они еле варочаються у них етсь общее поле datetime по которому можно разнести один день одна таблица(день 9-12 млн записей). данные хранятся не более 4 месяцев
я создал хранимую процедуру:
DELIMITER $$
DROP PROCEDURE IF EXISTS `wm_history`.`createTb` $$
CREATE PROCEDURE `wm_history`.`createTb` (
  IN tbName VARCHAR(255),
  IN dbFromName VARCHAR(255),
  IN tbDate DATETIME
)
BEGIN
  set @tbCreate = concat('drop table if exists `',tbName,'_',MONTH(tbDate)*100+DAY(tbDate),';');
    PREPARE tCreate FROM @tbCreate;
   EXECUTE tCreate;
   DEALLOCATE PREPARE tCreate;
  set @tbCreate = concat('create table `',tbName,'_',MONTH(tbDate)*100+DAY(tbDate),'` like `',tbName,'`;');
    PREPARE tCreate FROM @tbCreate;
   EXECUTE tCreate;
   DEALLOCATE PREPARE tCreate;
  set @tbInsert = concat('insert into `',tbName,'_',MONTH(tbDate)*100+DAY(tbDate),'` select * from `',
  dbFromName,'`.`',tbName,'` where day(dt)=',day(tbDate),' and month(dt)=',month(tbDate),';');
    PREPARE tInsert FROM @tbInsert;
   EXECUTE tInsert;
   DEALLOCATE PREPARE tInsert;
  set @tbCount = concat('select count(id) from `',tbName,'_',MONTH(tbDate)*100+DAY(tbDate),';');
    PREPARE tCount FROM @tbCount;
   EXECUTE tCount;
   DEALLOCATE PREPARE tCount;
END $$
DELIMITER ;
 
В неё передаёться имя таблицы и день, каждый день я задалбусь руцями перенасить можно ли это как то автоматизировать?
					
Отредактированно retro-kharkov (25.05.2011 11:57:41)