熱門標簽:
大家好,今天小編關注到一個比較有意思的話題,就是關于sql處理大數(shù)據(jù)的問題,于是小編就整理了4個相關介紹sql處理大數(shù)據(jù)的解答,讓我們一起看看吧。
處理方法:
1、用BACKUP LOG database WITH NO_LOG清除日志 把數(shù)據(jù)庫屬性中的故障還原模型改為“簡單”可以大大減慢日志增長的速度。
用BACKUP LOG database WITH NO_LOG命名后,會截斷不活動日志,不減小物理日志文件的大小,但邏輯日志會減小,收縮數(shù)據(jù)庫后會把不活動虛擬日志刪除來釋放空間,不會損壞數(shù)據(jù)。 如果日志被截斷并收縮數(shù)據(jù)庫后,就不能直接用最近的一個全庫備份做時間點還原,建議立即備份數(shù)據(jù)庫,以防萬一。2、sql server運行中,刪除主數(shù)據(jù)庫事務日志文件,步驟如下: (1)、分離數(shù)據(jù)庫管理器-數(shù)據(jù)庫-右擊要刪除日志的數(shù)據(jù)庫-所有任務-分離數(shù)據(jù)庫 (2)、然后刪除日志文件 (3)、然后再附加數(shù)據(jù)庫 企業(yè)管理器-數(shù)據(jù)庫-右擊數(shù)據(jù)庫-所有任務-附加數(shù)據(jù)庫時只附加mdf.
3、壓縮SQL數(shù)據(jù)庫及日志的詳細方法 可以在數(shù)據(jù)庫屬性選項中選擇“Auto shrink”選項,讓系統(tǒng)自動壓縮數(shù)據(jù)庫,也可以用人工的方法來壓縮。
刪除大量數(shù)據(jù)速度是正常的。 如果表里面數(shù)據(jù)都不要了,可以直接truncate 如果表里面數(shù)據(jù)只有一小部分要得,可以把小的備份出來,然后truncate表,然后再把備份的數(shù)據(jù)導回來 如果只是刪除表中部分數(shù)據(jù),可以寫成循環(huán)小批量刪除腳本;如果服務器性能好,百萬數(shù)據(jù)刪除還是很快的
解決方法如下:
第一優(yōu)化你的sql和索引;
第二加緩存,memcached,redis;
第三以上都做了后,還是慢,就做主從復制或主主復制,讀寫分離,可以在應用層做,效率高,也可以用三方工具,第三方工具推薦360的atlas,其它的要么效率不高,要么沒人維護;
第四如果以上都做了還是慢,不要想著去做切分,mysql自帶分區(qū)表,先試試這個,對你的應用是透明的,無需更改代碼,但是sql語句是需要針對分區(qū)表做優(yōu)化的,sql條件中要帶上分區(qū)條件的列,從而使查詢定位到少量的分區(qū)上,否則就會掃描全部分區(qū),另外分區(qū)表還有一些坑,在這里就不多說了;
第五如果以上都做了,那就先做垂直拆分,其實就是根據(jù)你模塊的耦合度,將一個大的系統(tǒng)分為多個小的系統(tǒng),也就是分布式系統(tǒng);
第六才是水平切分,針對數(shù)據(jù)量大的表,這一步最麻煩,最能考驗技術水平,要選擇一個合理的sharding key,為了有好的查詢效率,表結構也要改動,做一定的冗余,應用也要改,sql中盡量帶sharding key,將數(shù)據(jù)定位到限定的表上去查,而不是掃描全部的表;
1.數(shù)據(jù)庫的大小限制:SQL Server 2005 Express 和SQL Server 2008 Express 數(shù)據(jù)庫的大小限制最大為 4GB,最新版本的SQL Server 2008 R2 Express 數(shù)據(jù)庫的大小限制最大為 10G。這個大小的限制只有在數(shù)據(jù)文件上,事務日志大小則不受此限。
2.只能使用一個 CPU 來運算,這在多個 CPU 的電腦上會造成浪費。
3.可使用的存儲器量最高只有 1GB。
到此,以上就是小編對于sql處理大數(shù)據(jù)的問題就介紹到這了,希望介紹關于sql處理大數(shù)據(jù)的4點解答對大家有用。