我們在用mysqldump備份數據時,有個選項是 –where / -w,可以指定備份條件,這個選項的解釋是:
~~~
-w, --where=name Dump only selected records. Quotes are mandatory
~~~
我們可以做個測試,例如:
~~~
mysqldump --single-transaction -w ' id mydump.sql
~~~
這時候就可以備份出mytable表中 id< 10000 的所有記錄了。假設我們還想加一個時間范圍條件,例如:
~~~
mysqldump --single-transaction -w " id mydump.sql
~~~
在這里,一定注意單引號和雙引號問題,避免出現這種情況:
~~~
mysqldump --single-transaction -w ' id mydump.sql
~~~
這樣的話,結果條件會被解析成:
~~~
WHERE id < 10000 and logintime < unix_timestamp(2014-06-01)
~~~
眼尖的同學會發現,時間條件變成了:
~~~
WHERE id < 10000 and logintime < unix_timestamp(2014-06-01)
~~~
也就是變成了:
~~~
unix_timestamp(2007) -- 2014-6-1 = 2007
~~~
這和我們原先的設想大相徑庭,因此一定要謹慎。
- 前言
- 為什么InnoDB表要建議用自增列做主鍵
- 線上環境到底要不要開啟query cache
- MySQL復制中slave延遲監控
- 如何安全地關閉MySQL實例
- 如何查看當前最新事務ID
- 從MyISAM轉到InnoDB需要注意什么
- 5.6版本GTID復制異常處理一例
- 不同的binlog_format會導致哪些SQL不會被記錄
- Spring框架中調用存儲過程失敗
- 如何將兩個表名對調
- mysqldump加-w參數備份
- 使用mysqldump備份時為什么要加上 -q 參數
- 修改my.cnf配置不生效
- 什么情況下會用到臨時表
- profiling中要關注哪些信息
- EXPLAIN結果中哪些信息要引起關注
- processlist中哪些狀態要引起關注
- MySQL無法啟動例一
- pt-table-checksum工具使用報錯一例
- 為什么要關閉query cache,如何關閉
- MySQL聯合索引是否支持不同排序規則
- SAVEPOINT語法錯誤一例
- 你所不知的table is full那些事
- 大數據量時如何部署MySQL Replication從庫
- 內存溢出案例