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