1.合理安排索引
2.優化查詢條件
3.謹慎使用觸發器
4.大批量插入使用匯入方式
5.區分實時與歷史資料,轉存
6.分表,分庫,分渠道儲存,資料庫,硬碟,快取。資料庫的優化和定期整理
7.建立全文索引
8.優化查詢
就有可以百萬級也是1秒內出來
我認為資料分割槽、分成多個表、增加記憶體、換更好的機器都是物理上的,當然她帶來的速度的改善是有的。但是效能的改善一般比較少做多10倍到100倍之間。
對oracle我不熟悉,但在sql server中最有效和可行的辦法是優化資料庫結構和索引。
對於優化資料庫有根據事務型和資料倉儲型分為兩個方面。
偏重事務需要插入、更新速度快,所以一般這樣的表索引比較少,字段數目也少
資料倉儲需要查詢速度快,他一般會根據查詢可能出現的條件建立所有的索引,形成所謂的索引覆蓋。在大資料量的資料庫中,一旦某個查詢不能完全利用索引,就會形成表掃瞄。這是最壞的情況,查詢速度同資料量成正比。而如果能完全利用索引,查詢速度只有在資料量變化幾個等級才會有一些變化。我曾經測試過乙個庫存表150條記錄,索引建立不好乙個查詢需要4分鐘,對索引優化以後1秒不到。如果資料單純作為查詢可以取消對該錶的日誌功能。
我一般是分成兩個庫,乙個處理事務,乙個處理查詢,然後建立乙個定期事務把事務資料增加到查詢庫中。
總的來說,只有才所有軟的手段不能解決問題的情況下才採用物理的方法。但是物理的方法也不是單純增加應加的配置。一般有以下幾個手段
1。把日誌放到另外的硬碟上
2。把修改最頻繁的表放到另外的硬碟上、甚至放入記憶體中
3。採用更快的硬碟
4。增加更多記憶體
5。增加cpu數目
6。建立資料庫伺服器集群
資料庫的優化是一門很專業的學問,這又你充分的了解資料在資料庫中儲存的結構,查詢、修改的處理方式同時又了解業務才可能做好。我們應該花20%的精力去解決那些最關鍵最常用的地方。
希望能有更多的人參與討論,一點議論不要見笑。
其實問題到了sundyl這裡,已經提公升到了乙個高度了。
顯然為了提高系統的效能,通常有幾個辦法
1。將所有相關的硬體公升級,並盡最大可能減少每個瓶頸,諸如網路速度、硬碟速度等
2。選擇穩定、高效能的軟體支撐平台,比如選擇資料庫、應用伺服器。。。
3。程式**優化
4。將軟體系統環境優化,例如索引、儲存空間、臨時空間、碎片整理等選項。
資料庫的一些簡單操作
今天做了一些資料庫的操作 於是便記錄下來 1 判斷當前要插入的資料中的某乙個字段是否和資料庫的相對應的字段是否重複 cursor cursor getcontext getcontentresolver query 表名,null,查詢的字段 new string,null 然後進行判斷cursor...
一些mysql資料庫效能優化方法
一 mysql 資料庫效能優化之sql優化 注 這篇文章是以 mysql 為背景,很多內容同時適用於其他關係型資料庫,需要有一些索引知識為基礎 盡量避免 select 很多人看到這一點後覺得比較難理解,上面不是在誤區中剛剛說 select 子句中字段的多少並不會影響到讀取的資料嗎?是的,大多數時候並...
關於資料庫的一些簡單認知
有很多人在爭論第一款關係型資料庫是由ibm的db2,也有人說第一款關係型資料庫是由 甲骨文的oracle。第一款關係型資料庫理論是由ibm公司的system r團隊提出的,但事實上第乙個確實是 oracle公司做出來的。資料庫顧名思義就是存放資料的,就 美團滴滴等等都有大量的資料進行儲存,如果 做乙...