一、mysql中,邏輯刪除對索引以及性能會造成什么影響
如果要刪除的數據量比較小的話對索引以及性能是微乎其微的,但是一旦需要刪除的數據很大(比如總數據1KW,500W是需要刪除的數據)就會對造成整體查詢變慢,新數據的插入也會因為數據量比較多,構建索引變慢。
檢測修復數據庫
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。前者使用起來比較簡便。推薦使用。
1. check table 和 repair table
登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現的結果說Status是OK,則不用修復,如果有Error,可以用:
repair table tabTest;
進行修復,修復之后可以在用check table命令來進行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk適用于MYISAM類型的數據表,而isamchk適用于ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為缺省的數據表類型,這里以myisamchk為例子進行說明。當發現某個數據表出現問題時可以使用:
myisamchk tablename.MYI
進行檢測,如果需要修復的話,可以使用:
myisamchk -of tablename.MYI
關于myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL服務器沒有訪問這個數據表,保險的情況下是較好在進行檢測時把MySQL服務器Shutdown掉。另外可以把下面的命令放在你的rc.local里面啟動MySQL服務器前:
[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監聽的Sock文件位置,對于使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對于使用源碼安裝則是/tmp/mysql.sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數據庫存放的位置。
需要注意的時,如果你打算把這條命令放在你的rc.local里面,必須確認在執行這條指令時MySQL服務器必須沒有啟動!檢測修復所有數據庫(表)
延伸閱讀:
二、Navicat是什么
Navicat是一套快速、可靠和全面的數據庫管理工具,專門用于簡化數據庫管理和降低管理成本。Navicat圖形界面直觀,提供簡便的管理方法,設計和操作MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite的數據。
Navicat提供一個直觀和設計完善的用戶界面,用于創建、修改和管理資料庫的所有對象,例如表、視圖、函數或過程、索引、觸發器和序列。我們的表設計器幫助用戶創建和修改數據庫的表,讓設置高級選項,如關系、限制、觸發器和更多。
使用Navicat瀏覽和修改數據,插入、編輯、刪除數據或復制和粘貼記錄到數據表形式的數據編輯器,Navicat將運行相應的命令(例如INSERT或UPDATE),免除寫復雜的SQL。廣泛的數據編輯工具令編輯工作更為方便,例如外鍵查找、set/enum選擇器和記錄篩選。