以下都是在Mysql8.0版本 測試的。
ibdata1 共享表不能縮放空間,
獨享空間(.idb)刪除數據之後,可以縮小空間。
不會佔用那麼多資源內存。
mysql 默認是獨享。
innodb存儲數據的方式是通過B+ tree 結構
B+tree 結構是通過索引來構成的。數據存儲在樹的根部
mysql 有6種日誌文件,常用4種
1, 查詢日誌
2,慢查詢日誌
3,事務日誌【回滾等】
4,二進制日誌
5,錯誤日誌
6,中繼日誌(不常用)
1,查詢日誌(select),一般不建議開啓[對內存壓力比較大,對硬盤來說沒必要]
代碼 show variable like"%general_log%"; 配置是不開啓的。測試的時候,可以開啓下
2,慢查詢日誌 [*****重要****]
默認不開啓,記錄指定的 超出某個時間執行的sql(2s-3s)
作用:幫助我們在項目中對於一些查詢比較慢的sql進行捕獲
針對這個sql 進行優化。
show varialbes like "%slow _query_log%"
查看慢日誌的記錄文件。
配置my 可以這樣做
slow _query_log = on
slow _query_log_file = D:\php\...mysql\data\mysql_slow.log(放到你部署合適的位置就行,不用非得這個位置)
long_query_time =1 【這個一定需要設置,超過一秒就是慢查詢】
show varialbes like "%slow%"
eg SQL: elect sleep(3);
3.錯誤日誌
1,記錄mysql服務運行過程中產生的異常,不是指SQL異常,而指mysql服務異常
2,作用是在mysql服務異常時排錯和查錯
4,(主要了解) 二進制文件。(會記錄執行的sql(update,delete,create, insert)寫操作)
1 增量的數據備份及恢復
2 主從的數據同步
Show variable like ”%log_bin%”
Binlog 日誌。
2
1,記錄,還是可以去寫入,因爲只是規定大小,而不是限制大小
2,1)定時把二進制文件備份到數據庫備份中
- 定時對於往期1年的binlog日誌文件進行清空(如果服務器的資源充足不建議清空)
- SQL : 查看所有二進制文件,show binary logs。 當前使用的是 show master staus 當前日誌。 查詢第一個日誌 show binlog events。
- 制定show binlog events in "mysql-bin.000002";
- reset master; //清空二進制文件 flush logs;//清空所有的日誌文件。
重要 Mysql數據恢復?
用過 xshell 恢復
可以做測試,增加5條數據,之後把數據刪除。
筆記開啓 二進制日誌 會消耗1%的性能,保證安全性
2 存儲 結構
Myisam 數據和索引是分開存儲的。Innodb是一起的。