硬件優化前端
軟件優化mysql
my.cnf參數優化,命令監控show global status\Gredis
調優工具mysqlreportsql
sql語句優化數據庫
索引的優化安全
白名單機制--百度,就是讓一些不規範的語句執行查詢前通過DBA的確認,不經過不給執行,項目開發時讓DBA參與,減小上線後的慢sql查詢數量架構
抓出慢SQL,配置my.cnf運維
long_query_time=2nosql
log-slow-queries=/data/slow-log.logmemcached
按天輪詢slow-log.log
慢查詢日誌分析工具:mysqldumpslow mysqlsla myprofi mysql-explain-slow-log mysqllogfilter
天天晚上0點定時分析慢查詢,發到開發,DBA,CTO郵箱,由DBA給出優化建議,開發確認後,DBA線上執行
大的複雜的SQL語句拆分紅多個小的語句
數據庫是存儲數據的地方,不是計算數據的地方,因此對數據的計算,應用類處理,都要在前端解決,禁止在數據庫上處理
搜索功能,like%查詢名字%無法用索引,通常不要用MySQL數據庫,用memcached或者redis
架構優化
業務拆分:like%查詢名字%無法用索引,通常不要用MySQL數據庫
數據庫前端加cache:用memcached或者redis,例如:用戶登陸,商品查詢
某些業務使用nosql持久化存儲,redis,ttserver,例如:粉絲關注,好友關係等
動態數據靜態化,整個文件靜態化,頁面片斷靜態化
數據庫集羣與讀寫分離,一主多從,經過程序或者dbproxy進行集羣讀寫分離
單表超過2千萬,拆庫拆表,人工拆表拆庫(登陸,商品,訂單)
流程,制度,安全優化
任何一次人爲數據庫記錄更新,都要走一個流程
人的流程:開發---核心開發--運維或DBA
測試流程:內網測試--IDC測試