您好,登錄后才能下訂單哦!
優化策略一:調整硬盤I/O
這一步是在信息系統開發之前完成的。數據庫管理員可以將組成同一個表空間的數據文件放在不同的硬盤上,做到硬盤之間I/O負載均衡。
優化策略二:建立索引
減少數據訪問,創建并使用正確的索引。數據庫索引的原理非常簡單,但在復雜的表中真正能正確使用索引的人很少,即使是專業的DBA也不一定能完全做到最優。索引會大大增加表記錄的DML開銷,正確的索引可以讓性能提升100,1000倍以上,不合理的索引也可能會讓性能下降100倍,因此在一個表中創建什么樣的索引需要平衡各種業務需求。數據庫優化第一步就是建立合理的索引,這也是最初級的優化,也是DBA常用的優化方案
優化策略三:調整數據庫SQL語句
應用程序的執行最終將歸結為數據庫中的SQL語句執行,因此SQL語句的執行效率最終決定了ORACLE數據庫的性能。ORACLE公司推薦使用ORACLE語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。
優化策略四:考慮應用程序結構設計
這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什么樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的數據庫資源是不同的。
優化策略五:考慮數據結構的設計
這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE數據庫的分區功能,對于經常訪問的數據庫表是否需要建立索引等。
優化策略六:做好服務器內存分配
減少數據庫服務器CPU運算,使用綁定變量,并且合理使用排序,減少比較操作,利用更多的資源。內存分配是在信息系統運行過程中優化配置的,數據庫管理員可以根據數據庫運行狀況調整數據庫系統全局區的數據緩沖區、日志緩沖區和共享池的大小;還可以調整程序全局區的大小。需要注意的是,SGA區不是越大越好,SGA區過大會占用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。
優化策略七:調整操作系統參數
例如:運行在UNIX操作系統上的ORACLE數據庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。
優化策略八:分庫
分庫是數據庫優化的一種較高級手段,實際上是橫向分表的衍生;一般需要有中間件或者客戶端做一些工作實現,這里給大家推薦兩個分庫的代碼:一個是mycat,基于阿里coba開源的數據庫中間件,很容易實現分庫分表、主從切換功能。
優化策略九:精簡業務邏輯
要通過優化業務邏輯來提高性能是比較困難的,這需要程序員對所訪問的數據及業務流程非常清楚。實際的業務總是十分復雜的,所以一般只是高級程序員更容易做出優化的邏輯,但是我們需要有這樣一種成本優化的意識。
優化策略十:分析查詢日志和慢查詢日志
記錄所有查詢,這在用 ORM 系統或者生成查詢語句的系統很有用。
log=/var/log/mysql.log
注意不要在生產環境用,否則會占滿你的磁盤空間。
記錄執行時間超過 1 秒的查詢:
long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log
以上就是數據庫性能優化的策略分析,大家都學會了嗎?如果在實際工作中,想要優化數據庫,不妨把以上的做法實操一遍,相信對大家的工作會有很大的幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。