MySQL常用指令碼

來源:互聯網
上載者:User

標籤:mysql   資料庫   

匯出到測試環境

大公司常有生產環境和測試環境,測試環境沒法即時同步生產環境的資料,這就需要我們手工進行同步了。

備份到檔案

我們不需要將生產環境的資料全量匯出到測試環境,只需要滿足部分條件的資料,如最近1個星期的資料,或者最近的100條資料

mysqldump -u使用者名稱 -p密碼 -h生產環境節點 資料庫 資料表 --where "查詢語句" --skip-lock-tables  --default-character-set=utf8 --no-create-info --quick > 資料表.sql
匯入到測試環境
mysql -u測試使用者 -p測試密碼 -h測試節點 資料庫名 < Page_Stats.sql
存在則更新,不存在則插入

我們需要定期更新離線資料庫,更新時,可能有重複的資料,即已經存在滿足唯一性索引的資料。這個時候,如果直接刪除資料庫中的資料,可能引出一些BUG。mysql中有一種插入資料庫的寫法,如果資料不存在則插入資料,如果存在滿足唯一性索引的資料,則更新相應資料

INSERT INTO table (column_1, column_2, column_3) VALUES (‘column_1_value‘, ‘column_1_value‘, ‘column_3_value‘) ON DUPLICATE KEY UPDATE column_1=‘column_1_value‘, column_2=‘column_2_value‘, column_3=‘column_3_value‘;
儲存最佳化

假如線上資料庫只記錄了每個廣告主最新的出價資訊,而我們想觀察每個廣告主的曆史出價資訊。那麼每分鐘記錄所有廣告主的出價資訊的話,資料量將會非常大,這個時候,我們就需要對儲存進行最佳化:如果該廣告主出價資訊沒有變化,我們就不需要記錄了

資料庫表

表:coupon_bid_realtime
欄位:coupon bid record_time
唯一索引:coupon record_time

查詢所有廣告主的最近出價資訊
SELECT A.coupon, A.bid, A.record_time FROM coupon_bid_realtime AS A JOIN (SELECT coupon, MAX(record_time) AS record_time FROM coupon_bid_realtime GROUP BY coupon) AS B ON A.coupon = B.coupon AND A.record_time = B.record_time;
過濾沒有變化的資料

根據前面查詢出來的廣告主的出價資訊,如果廣告主沒有變更出價資訊,則不插入

查詢神器

想看自己寫的查詢語句是否充分利用了資料庫的索引,可以使用EXPLAIN,用法EXPLAIN querySQL

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

MySQL常用指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.