廣告贊助

/* ********* 資料庫整理 ***********
備份與清理 mystk.stk, mystk.stkbackup, backtesting.stk,

同時建立stkYYYHn.sql.zip外部文字備份檔,並放到雲端硬碟供人下載

以下請修改-- 半年開始日: 2015-01-01,半年截止日: 2015-06-30, 半年table名稱: stk104H1
*/

檔案下載:資料庫整理.zip

內含:資料庫整理.txt, dump_half.cmd (請將其解壓至 c:\stockSD\sql\myStk\ )

# ========== 1.控制 stkbackup 大小 ==========

# 因為 stk 每日行情資料太大無法每天備份,改將當日資料每天備份至 stkbackup,然後定期(每半年)將其匯出到文字檔後再予清理
#

use mystk;

-- 1.1 查詢 stkbackup 資料起始日期
select dte,count(*) from stkbackup group by dte order by dte;

-- 1.2 stkbackup 只須保存最近半年資料,才能加速每日備份時間,其他的應該匯出到文字檔(每半年一個)
create table stk104H1 as select * from stkbackup where dte between '2015-01-01' and '2015-06-30';

-- 1.3 確認備份成功
select dte,count(*) from stk104H1 group by dte order by dte;

# =========== 2. 將半年table存成外部文字檔

-- 2.1 執行 c:\stockSD\sql\myStk\dump_half.cmd stk104H1 , 注意檔名 stk104H1 必須正確

-- 2.2 將 c:\Temp\stk104H1.sql 壓縮成 zip,注意,將其命名為 stk104H1.sql.zip 使與早先的 csv檔有所區別

--     外部文字檔可使用下法回存原來的table(stk104H1) mysql -uroot -p DatabaseName < path\TableName.sql
--     將此壓縮檔上傳到雲端硬碟 /ssd,供別人下載

 

dump_half.cmd

rem 將半年table存成外部文字檔, 參數1(%1)如 stk104H2,為要dump的table名稱
c:
cd \xampp\mysql\bin
if not exist c:\temp md c:\temp
rem mysqldump -uroot -p%ppp%99 mystk %1 --no-data >c:\temp\%1.sql
mysqldump -uroot -p%ppp%99 mystk %1 >>c:\temp\%1.sql

# =========== 3. 備份到 backtesting.stk

-- 3.1 查詢 backtesting.stk 現有紀錄最後日期
use backtesting
select stockid,dte from stk where stockid='2330' order by dte desc

--- 3.2 複製某日期以後 mystk.stk 到 backtesting.stk
INSERT INTO stk SELECT * FROM mystk.stk where dte > '2017-8-3';

--- 3.3 確認成功否?
select dte,count(*) from stk where dte > '2017-8-3' group by dte  order by dte desc

# ========== 4. 清除工作檔資料以縮減資料庫大小

use mystk
delete from stkbackup where dte between '2015-01-01' and '2015-06-30';
drop table stk104h1

# ========== 5. 清除 mystk.stk 只須保存3年資料

-- 5.1 查詢起始日期
use mystk
select stockid,dte from stk where stockid='2330' order by dte LIMIT 10

-- 5.2 清除正式資料,此時stk正式資料已有兩個備份,一是外部文字檔,一是backtesting.stk
delete from stk where dte <= '2014-12-31';
select dte,count(*) from stk group by dte order by dte;

# ****** done! ******

 

創作者介紹
創作者 jesse0606 的頭像
jesse0606

奇正

jesse0606 發表在 痞客邦 留言(0) 人氣()