下文主要給大家?guī)?lái)關(guān)于MySql知識(shí)的詳細(xì)介紹,希望這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯關(guān)于MySql知識(shí)的詳細(xì)介紹這篇文章的主要目的。好了,廢話不多說(shuō),大家直接看下文吧。
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言--結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個(gè)性化的需要對(duì)其進(jìn)行修改。
MySQL因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。
推薦教程:mysql入門視頻教程
MySQL簡(jiǎn)介
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言--結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。
由于MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個(gè)性化的需要對(duì)其進(jìn)行修改。MySQL因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。
MySQL這個(gè)名字,起源不是很明確。一個(gè)比較有影響的說(shuō)法是,基本指南和大量的庫(kù)和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個(gè)到底是哪一個(gè)給出了MySQL這個(gè)名字至今依然是個(gè)迷,包括開發(fā)者在內(nèi)也不知道。
MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的競(jìng)賽中建議的大量的名字表中選出的。獲勝的名字是由來(lái)自非洲斯威士蘭的開源軟件開發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說(shuō),Sakila來(lái)自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha的一個(gè)小鎮(zhèn)的名字。
MySQL,雖然功能未必很強(qiáng)大,但因?yàn)樗拈_源、廣泛傳播,導(dǎo)致很多人都了解到這個(gè)數(shù)據(jù)庫(kù)。它的歷史也富有傳奇性。
數(shù)據(jù)庫(kù)優(yōu)化
選擇InnoDB作為存儲(chǔ)引擎
大型產(chǎn)品的數(shù)據(jù)庫(kù)對(duì)于可靠性和并發(fā)性的要求較高,InnoDB作為默認(rèn)的MySQL存儲(chǔ)引擎,相對(duì)于MyISAM來(lái)說(shuō)是個(gè)更佳的選擇。
優(yōu)化數(shù)據(jù)庫(kù)結(jié)構(gòu)
組織數(shù)據(jù)庫(kù)的schema、表和字段以降低I/O的開銷,將相關(guān)項(xiàng)保存在一起,并提前規(guī)劃,以便隨著數(shù)據(jù)量的增長(zhǎng),性能可以保持較高的水平。
設(shè)計(jì)數(shù)據(jù)表應(yīng)盡量使其占用的空間最小化,表的主鍵應(yīng)盡可能短?!?duì)于InnoDB表,主鍵所在的列在每個(gè)輔助索引條目中都是可復(fù)制的,因此如果有很多輔助索引,那么一個(gè)短的主鍵可以節(jié)省大量空間。
僅創(chuàng)建你需要改進(jìn)查詢性能的索引。索引有助于檢索,但是會(huì)增加插入和更新操作的執(zhí)行時(shí)間。
InnoDB的ChangeBuffering特性
InnoDB提供了changebuffering的配置,可減少維護(hù)輔助索引所需的磁盤I/O。大規(guī)模的數(shù)據(jù)庫(kù)可能會(huì)遇到大量的表操作和大量的I/O,以保證輔助索引保持最新。當(dāng)相關(guān)頁(yè)面不在緩沖池里面時(shí),InnoDB的changebuffer將會(huì)更改緩存到輔助索引條目,從而避免因不能立即從磁盤讀取頁(yè)面而導(dǎo)致耗時(shí)的I/O操作。當(dāng)頁(yè)面被加載到緩沖池時(shí),緩沖的更改將被合并,更新的頁(yè)面之后會(huì)刷新到磁盤。這樣做可提高性能,適用于MySQL5.5及更高版本。
InnoDB頁(yè)面壓縮
InnoDB支持對(duì)表進(jìn)行頁(yè)面級(jí)的壓縮。當(dāng)寫入數(shù)據(jù)頁(yè)的時(shí)候,會(huì)有特定的壓縮算法對(duì)其進(jìn)行壓縮。壓縮后的數(shù)據(jù)會(huì)寫入磁盤,其打孔機(jī)制會(huì)釋放頁(yè)面末尾的空塊。如果壓縮失敗,數(shù)據(jù)會(huì)按原樣寫入。表和索引都會(huì)被壓縮,因?yàn)樗饕ǔJ菙?shù)據(jù)庫(kù)總大小中占比很大的一部分,壓縮可以顯著節(jié)約內(nèi)存,I/O或處理時(shí)間,這樣就達(dá)到了提高性能和伸縮性的目的。它還可以減少內(nèi)存和磁盤之間傳輸?shù)臄?shù)據(jù)量。MySQL5.1及更高版本支持該功能。
注意,頁(yè)面壓縮并不能支持共享表空間中的表。共享表空間包括系統(tǒng)表空間、臨時(shí)表空間和常規(guī)表空間。
使用批量數(shù)據(jù)導(dǎo)入
在主鍵上使用已排序的數(shù)據(jù)源進(jìn)行批量數(shù)據(jù)的導(dǎo)入可加快數(shù)據(jù)插入的過(guò)程。否則,可能需要在其他行之間插入行以維護(hù)排序,這會(huì)導(dǎo)致磁盤I/O變高,進(jìn)而影響性能,增加頁(yè)的拆分。關(guān)閉自動(dòng)提交的模式也是有好處的,因?yàn)樗鼤?huì)為每個(gè)插入執(zhí)行日志刷新到磁盤。在批量插入期間臨時(shí)轉(zhuǎn)移唯一鍵和外鍵檢查也可顯著降低磁盤I/O。對(duì)于新建的表,最好的做法是在批量導(dǎo)入后創(chuàng)建外鍵/唯一鍵約束。
一旦你的數(shù)據(jù)達(dá)到穩(wěn)定的大小,或者增長(zhǎng)的表增加了幾十或幾百兆字節(jié),就應(yīng)該考慮使用OPTIMIZETABLE語(yǔ)句重新組織表并壓縮浪費(fèi)的空間。對(duì)重新組織后的表進(jìn)行全表掃描所需要的I/O會(huì)更少。
優(yōu)化InnoDB磁盤I/O
增加InnoDB緩沖池大小可以讓查詢從緩沖池訪問(wèn)而不是通過(guò)磁盤I/O訪問(wèn)。通過(guò)調(diào)整系統(tǒng)變量innodb_flush_method來(lái)調(diào)整清除緩沖的指標(biāo)使其達(dá)到最佳水平。
MySQL的內(nèi)存分配
在為MySQL分配足夠的內(nèi)存之前,請(qǐng)考慮不同領(lǐng)域?qū)ySQL的內(nèi)存需求。要考慮的關(guān)鍵領(lǐng)域是:并發(fā)連接——對(duì)于大量并發(fā)連接,排序和臨時(shí)表將需要大量?jī)?nèi)存。在撰寫本文時(shí),對(duì)于處理3000+并發(fā)連接的數(shù)據(jù)庫(kù),16GB到32GB的RAM是足夠的。
內(nèi)存碎片可以消耗大約10%或更多的內(nèi)存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等緩存和緩沖區(qū)要消耗大約80%的已分配內(nèi)存。
日常維護(hù)
定期檢查慢的查詢?nèi)罩静?yōu)化查詢機(jī)制以有效使用緩存來(lái)減少磁盤I/O。優(yōu)化它們,以掃描最少的行數(shù),而不是進(jìn)行全表掃描。
其他可以幫助DBA檢查和分析性能的日志包括:錯(cuò)誤日志、常規(guī)查詢?nèi)罩?、二進(jìn)制日志、DDL日志(元數(shù)據(jù)日志)。
定期刷新緩存和緩沖區(qū)以降低碎片化。使用OPTIMIZETABLE語(yǔ)句重新組織表并壓縮任何可能被浪費(fèi)的空間。 [1]
對(duì)于以上關(guān)于MySql知識(shí)的詳細(xì)介紹,大家是不是覺(jué)得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文題目:關(guān)于MySql知識(shí)的詳細(xì)介紹-創(chuàng)新互聯(lián)
標(biāo)題URL:http://chinadenli.net/article16/desggg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、App設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司、搜索引擎優(yōu)化、軟件開發(fā)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)