现在的mysql太大了,已经严重影响查询速度了。现在想实现一个方案,就是:
每个月对超过两年的历史数据进行导出备份,然后从数据库中删除超过两年的数据,想请教大家有什么算法可以实现啊 
由于刚接触mysql,上面又催的急,能否贴个procedure出来,谢谢啊

解决方案 »

  1.   

    问题补充:是每个月定时执行一次,shell脚本该怎么写
      

  2.   

    可以用linux的计划任务crontab 或者 mysql本身的event来实现
      

  3.   

    谢谢啊,现在纠结的是脚本内容或者event内容不会啊,主要数据是三张大表,里面都有时间字段的
      

  4.   

    用.sql文件来实现啊...
    将脚本写在sql文件中,然后linux定期执行此sql文件
    E:\test.sql
    show databases;
    CMD
    D:\>mysql -u root -pabcdefg -hlocalhost < E:\test.sql
    用同样的方法,在Linux上建立一个sql(假设创建在/home目录下的 backup.sql),之后
    vi /etc/crontab
    在最后一行添加
    30 4 1 * * root cd /home && mysql -u root -pyourpswd -h localhost < backup.sql
    保存退出
    这样每月1号的4点半就会自动执行/home/backup.sql这个脚本了
    至于sql脚本内容,你就把他当成是在mysql命令行下输入命令就可以了
      

  5.   

    http://topic.csdn.net/u/20091020/22/c51bb709-6dbc-4fd1-b874-077714ed547e.html
    另征集定时执行mysql数据库任务方案。
      

  6.   

    假如你描述的时间字段是datetime类型的,字段名称是t,你可以这样
    mysqldump 若干参数 where="TO_DAYS(NOW())-TO_DAYS(t)>730"
    然后delete
    然后在import优化:可以穿件一个timstamp列,保存datetime的unix_timestamp值,然后给这个建一个索引,整个过程会快很多。
      

  7.   

    用MYSQL的EVENT,直接把数据插入到另外一个备份库,然后删除掉本身。
      

  8.   

    1、用MYSQL自己的EVENT;
    2、用语言编制程序,在系统的任务中调用 
    MYSQLDUMP --add-drop-database -uroot -B -E -R -p123 ZZ>r:\temp\123.TXT