優化結構、優化操作、優化查詢、優化......

如何入手呢?有什麼相關書籍資料?


High Performance MySQL. 英文版的。

可以先搜索下MySQL 索引優化。


題主 什麼資料庫,什麼運行環境,什麼情況 都沒說,你們一個個的談優化.扯蛋!!!

求摺疊.
1: 對涉及表索引的優化,可以佔40%

2:對sql語句的優化,也可以佔40%

3:對server和database 的優化設置各佔10%
每個關係資料庫都有各自的優化手段,但是最主要的還是sql優化。一條糟糕的sql在高並發時同樣能使資料庫癱瘓。

我之前有自己做過一套方法論,以供參考:

1.Application Design - batch,
2-tier, 3-tier, connection pooling

2.Query Design - poor
queries, inappropriate use of cursors

3.Transaction Management - waiting
on client, deadlocks, etc.4. Schema– over-normalization,
no supporting indexes,
appropriate
data
types5.Data Distribution – missing
statistics, low cardinality , index fragment, fill factor6.Database Maintenance – Statistics
update, reindex, history data archiving

7.SQL Server - insufficient
resources or improperly configured

8.Network Infrastructure – 2-tier,
large result sets9.Operating System - improperly
configured or wrong OS chosen10.Hardware - insufficient
resources, hardware errors, using SSD, etc.

11.Workload –separate
read/write request,
separate OLTP/OLAP tables

12.Load balance- cluster,
horizontally and
vertically scaling

需要說明的是,在資料庫調優中,索引的優化和統計信息的分析要佔到70%以上~~


http://www.presoft.com.cn/ob/course/No7_optimization_B.html
如果是sql server方面你可以看下sql server技術內幕那套書。

資料庫性能優化:系統CPU,內存,磁碟存儲,系統參數,以oracle為例,資料庫SGA,PGA,Process,cursor,session等參數設置優化。對於資料庫SQL優化,首先要規範sql寫法,索引建立,數據生命週期管理等。何以解憂,唯有讀書和實踐。總結幾點:1.善用explain,看看自己寫的sql到底要涉及到多少表,多少行,使用了那些索引,根據這些信息適當的創建索引,適當建立索引,在頻繁作為檢索條件,更新較少的欄位上建立索引,以提高查詢速度。;2.善用不同的存儲引擎,MySQL有多種不同的存儲引擎,InnoDB,Aria,MEMORY根據需要給不同的表選擇不同的存儲引擎,比如要支持transaction的話用InnoDB等;3.表很大的時候,做分片,分表查詢,有水平分割、垂直分割。4.讀寫分離,讀(read)、寫(create、update、delete)。5.建立存儲過程。6.表的設計要規範,即要符合資料庫設計三範式。針對mysql的性能優化:1:首先應該優化你的SQL語句。開啟慢查詢,通過慢查詢日誌發現有問題的SQL語句,通過explain查詢分析SQL的執行計劃;針對limit、groupby優化2:索引優化。選擇合適的列建立索引,一般在where從句,on從句等;維護索引,去掉重複索引 ,如 primary key 不要在加上唯一索引了;3:資料庫的優化。選擇合適的數據類型,範式優化和反範式優化(已空間換時間),垂直切分和水平切分,水平切分我基本沒用到,考驗技術水平4:然後就是系統配置和硬體優化,硬體優化當然就是錢啦。最好是在一個儘可能小的表上做一個儘可能簡單的操作讀取儘可能少的結果。


http://book.douban.com/subject/3729677/http://book.douban.com/subject/3924175/
mysql手冊,我覺得是最靠譜的
推薦兩本圖書,個人覺得很不錯:1、SQL語言藝術-StephaneFaroult Peter Robson著,溫昱 靳向陽 譯--電子工業出版社--9-787121-0583492、Microsoft SQL Server 性能調校--胡百敬 著--電子工業出版社--9-787121-004384

胡百敬:

  • 臺灣恆逸資訊資深講師
  • 微軟專業顧問
  • 臺灣《聯合報》中文系統技術顧問
  • 擁有多年系統分析、設計與實踐經驗,參與過許多大型項目開發
  • 擁有長期的授課經驗
  • 執有MCT、MCAD、MCSD證書


推薦閱讀:
相關文章