无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

后端面試題(二):談一談你對 MySQL 性能優(yōu)化的理解。

2023-04-11 21:34 作者:我有一個壞前桌  | 我要投稿



-----



MySQL 作為一種免費開源的關(guān)系型數(shù)據(jù)庫,深受著互聯(lián)網(wǎng)公司的喜愛。

因此,它也成為了技術(shù)面試官最常問的問題之一。

今天,我們就通過普通人與高手的形式,帶大家深入了解 MySQL 的性能優(yōu)化技



-----


普通人

MySQL 的性能優(yōu)化主要在于對 SQL 執(zhí)行的優(yōu)化,因為慢的 SQL 執(zhí)行會帶來不好的用戶體驗,所以我們要關(guān)注 SQL 的執(zhí)行時間,比如有些沒有創(chuàng)建索引的列,我們

要創(chuàng)建索引,不合理的聯(lián)表查詢我們要簡化或者規(guī)避。

比如,在我以前的一個項目中,我的 SQL 沒有索引執(zhí)行,所以平均執(zhí)行都需要很多的時間。后面我加上了索引就好多了。


高手

常見的 SQL 優(yōu)化規(guī)則:

1. SQL 的查詢一定要基于索引來進行數(shù)據(jù)掃描

1. 避免索引列上使用函數(shù)或者運算,這樣會導(dǎo)致索引失效

1. where 字句中 like %號,盡量放置在右邊

1. 使用索引掃描,聯(lián)合索引中的列從左往右,命中越多越好.

1. 盡可能使用 SQL 語句用到的索引完成排序,避免使用文件排序的方式

1. 查詢有效的列信息即可.少用 * 代替列信息

1. 永遠用小結(jié)果集驅(qū)動大結(jié)果集。


MySQL 的性能優(yōu)化我認為可以分為 4 大部分

1. 硬件和操作系統(tǒng)層面的優(yōu)化

1. 架構(gòu)設(shè)計層面的優(yōu)化

1. MySQL 程序配置優(yōu)化

1. SQL 優(yōu)化

1. 硬件及操作系統(tǒng)層面優(yōu)化



從硬件層面來說,影響 Mysql 性能的因素有,CPU、可用內(nèi)存大小、磁盤讀寫速度、網(wǎng)絡(luò)帶寬從操作系層面來說,應(yīng)用文件句柄數(shù)、操作系統(tǒng)網(wǎng)絡(luò)的配置都會影響到 Mysql性能。這部分的優(yōu)化一般由 DBA 或者運維工程師去完成。在硬件基礎(chǔ)資源的優(yōu)化中,我們重點應(yīng)該關(guān)注服務(wù)本身承載的體量,然后提出合理的指標(biāo)要求,避免出現(xiàn)資源浪費!


架構(gòu)設(shè)計層面的優(yōu)化


MySQL 是一個磁盤 IO 訪問量非常頻繁的關(guān)系型數(shù)據(jù)庫,在高并發(fā)和高性能的場景中.MySQL 數(shù)據(jù)庫必然會承受巨大的并發(fā)壓力,而此時,我們的優(yōu)化方式可以分為幾個部分。



1. 搭建 Mysql 主從集群,單個 Mysql 服務(wù)容易單點故障,一旦服務(wù)器宕機,將會導(dǎo)致依賴 Mysql 數(shù)據(jù)庫的應(yīng)用全部無法響應(yīng)。 主從集群或者主主集群可以保證服務(wù)的高可用性。


2. 讀寫分離設(shè)計,在讀多寫少的場景中,通過讀寫分離的方案,可以避免讀寫沖突導(dǎo)致的性能影響。


3. 引入分庫分表機制,通過分庫可以降低單個服務(wù)器節(jié)點的 IO 壓力,通過分表的方式可以降低單表數(shù)據(jù)量,從而提升 sql 查詢的效率。


4. 針對熱點數(shù)據(jù),可以引入更為高效的分布式數(shù)據(jù)庫,比如 Redis、MongoDB等,他們可以很好的緩解 Mysql 的訪問壓力,同時還能提升數(shù)據(jù)檢索性能。



MySQL 程序配置優(yōu)化


MySQL 是一個經(jīng)過互聯(lián)網(wǎng)大廠驗證過的生產(chǎn)級別的成熟數(shù)據(jù)庫,對于 Mysql 數(shù)據(jù)庫本身的優(yōu)化,一般是通過 Mysql 中的配置文件 my.cnf 來完成的,比如。Mysql5.7 版本默認的最大連接數(shù)是 151 個,這個值可以在 my.cnf 中修改。


緩存池 bufferpoll 的默認大小配置等


由于這些配置一般都和用戶安裝的硬件環(huán)境以及使用場景有關(guān)系,因此這些配置官方只會提供一個默認值,具體情況還得由使用者來修改。


后端面試題(二):談一談你對 MySQL 性能優(yōu)化的理解。的評論 (共 條)

分享到微博請遵守國家法律
扎兰屯市| 鸡泽县| 启东市| 墨玉县| 玉树县| 安宁市| 望都县| 牟定县| 广州市| 拉孜县| 洪湖市| 东乌珠穆沁旗| 沁阳市| 开远市| 镇坪县| 华容县| 辽阳市| 合阳县| 铅山县| 读书| 阳新县| 黔东| 星子县| 玉龙| 博客| 江山市| 班戈县| 通榆县| 三台县| 静乐县| 深圳市| 文登市| 凯里市| 昌平区| 新密市| 麻栗坡县| 抚远县| 德安县| 随州市| 威信县| 民丰县|