SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.05.2011 11:56:48

retro-kharkov
Участник
Зарегистрирован: 18.04.2011
Сообщений: 10

Автоматизация разнесения данных истории по дням

Доброго времнеи суток
Есть около десятка таблиц разных по структуре  в которых по паре миллиардов сторк, соответственно они еле варочаються у них етсь общее поле 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)

Неактивен

 

#2 26.05.2011 00:33:27

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Автоматизация разнесения данных истории по дням

http://dev.mysql.com/doc/refman/5.1/en/ … event.html — что-то такое ищете?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson