国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL性能優(yōu)化

2024-07-24 12:48:48
字體:
供稿:網(wǎng)友

1. 簡介

在Web應(yīng)用程序體系架構(gòu)中,數(shù)據(jù)持久層(通常是一個關(guān)系數(shù)據(jù)庫)是關(guān)鍵的核心部分,它對系統(tǒng)的性能有非常重要的影響。MySQL是目前使用最多的開源數(shù)據(jù)庫,但是MySQL數(shù)據(jù)庫的默認設(shè)置性能非常的差,僅僅是一個玩具數(shù)據(jù)庫。因此在產(chǎn)品中使用MySQL數(shù)據(jù)庫必須進行必要的優(yōu)化。
優(yōu)化是一個復雜的任務(wù),本文描述MySQL相關(guān)的數(shù)據(jù)庫設(shè)計和查詢優(yōu)化,服務(wù)器端優(yōu)化,存儲引擎優(yōu)化。

2. 數(shù)據(jù)庫設(shè)計和查詢優(yōu)化
在MySQL Server性能調(diào)優(yōu)中,首先要考慮的就是Database Schema設(shè)計,這一點是非常重要的。一個糟糕的Schema設(shè)計即使在性能調(diào)優(yōu)的MySQL Server上運行,也會表現(xiàn)出很差的性能;和Schema相似,查詢語句的設(shè)計也會影響MySQL的性能,應(yīng)該避免寫出低效的SQL查詢。這一節(jié)將詳細討論這兩方面的優(yōu)化。

2.1 Schema Design
Schema的優(yōu)化取決于將要運行什么樣的query,不同的query會有不同的Schema優(yōu)化方案。2.2節(jié)將介紹Query Design的優(yōu)化。Schema設(shè)計同樣受到預期數(shù)據(jù)集大小的影響。Schema設(shè)計時主要考慮:標準化,數(shù)據(jù)類型,索引。

2.1.1 標準化

標準化是在數(shù)據(jù)庫中組織數(shù)據(jù)的過程。其中包括,根據(jù)設(shè)計規(guī)則創(chuàng)建表并在這些表間建立關(guān)系;通過取消冗余度與不一致相關(guān)性,該設(shè)計規(guī)則可以同時保護數(shù)據(jù)并提高數(shù)據(jù)的靈活性。通常數(shù)據(jù)庫標準化是讓數(shù)據(jù)庫設(shè)計符合某一級別的范式,通常滿足第三范式即可。也有第四范式(也稱為 Boyce Codd范式,BCNF))與第五范式存在,但是在實際設(shè)計中很少考慮。忽視這些規(guī)則可能使得數(shù)據(jù)庫的設(shè)計不太完美,但這不應(yīng)影響功能。
標準化的特點:

1) 所有的“對象”都在它自己的table中,沒有冗余。
2) 數(shù)據(jù)庫通常由E-R圖生成。
3) 簡潔,更新屬性通常只需要更新很少的記錄。
4) Join操作比較耗時。
5) Select,sort優(yōu)化措施比較少。
6) 適用于OLTP應(yīng)用。

非標準化的特點:

1) 在一張表中存儲很多數(shù)據(jù),數(shù)據(jù)冗余。
2) 更新數(shù)據(jù)開銷很大,更新一個屬性可能會更新很多表,很多記錄。
3) 在刪除數(shù)據(jù)是有可能丟失數(shù)據(jù)。
4) Select,order有很多優(yōu)化的選擇。
5) 適用于DSS應(yīng)用。


標準化和非標準化都有各自的優(yōu)缺點,通常在一個數(shù)據(jù)庫設(shè)計中可以混合使用,一部分表格標準化,一部分表格保留一些冗余數(shù)據(jù):

1) 對OLTP使用標準化,對DSS使用非標準化
2) 使用物化視圖。MySQL不直接支持該數(shù)據(jù)庫特性,但是可以用MyISAM表代替。
3) 冗余一些數(shù)據(jù)在表格中,例如將ref_id和name存在同一張表中。但是要注意更新問題。
4) 對于一些簡單的對象,直接使用value作為建。例如IP address等
5) Reference by PRIMARY/UNIQUE KEY。MySQL可以優(yōu)化這種操作,例如:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 自治县| 依兰县| 陈巴尔虎旗| 班戈县| 葫芦岛市| 监利县| 仲巴县| 宜君县| 美姑县| 章丘市| 大埔县| 三江| 出国| 桃园县| 临武县| 内黄县| 淄博市| 台南市| 丹棱县| 梁山县| 即墨市| 南木林县| 娄底市| 沁源县| 阳江市| 二连浩特市| 安仁县| 德兴市| 滕州市| 巴南区| 孟州市| 绥化市| 开封市| 古丈县| 太湖县| 扎鲁特旗| 土默特左旗| 昌都县| 河曲县| 鄂州市| 古田县|