最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)化的理解。的評論 (共 條)

分享到微博請遵守國家法律
华阴市| 曲麻莱县| 元江| 阿瓦提县| 开封市| 顺平县| 崇明县| 广昌县| 金湖县| 高安市| 霸州市| 页游| 梁山县| 剑川县| 佳木斯市| 江都市| 达州市| 巨鹿县| 南丹县| 星子县| 雅安市| 大同市| 花垣县| 富顺县| 聂荣县| 甘谷县| 台中县| 澄城县| 潍坊市| 英山县| 平南县| 神木县| 阳新县| 湘潭县| 云安县| 秦安县| 京山县| 万全县| 上犹县| 天气| 治多县|