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

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

MySQL性能優(yōu)化的一些技巧幫助你的數(shù)據(jù)庫

2024-07-24 13:01:31
字體:
供稿:網(wǎng)友
你完成了你的品牌新的應(yīng)用程序,一切工作就像一個魅力。用戶來使用你的網(wǎng)絡(luò)。每個人是幸福的。
然后,突然間,一個大爆發(fā)的用戶殺死你的MySQL服務(wù)器,您的網(wǎng)站已關(guān)閉。出了什么問題?你怎么能阻止它嗎?
以下是MySQL性能優(yōu)化的一些技巧,將幫助你,幫助你的數(shù)據(jù)庫。

大處著眼
在早期的發(fā)展階段,你應(yīng)該知道預(yù)期到您的應(yīng)用程序的用戶數(shù)。如果你希望很多用戶來說,你應(yīng)該想想大,從一開始,計劃進(jìn)行復(fù)制,可擴展性和性能。
但是,如果你優(yōu)化你的SQL代碼,架構(gòu)和索引策略,也許你不會需要大環(huán)境。你必須總是三思而后行的性能和可擴展性是不一樣的。

請務(wù)必使用EXPLAIN
EXPLAIN語句可以被用來作為獲取信息的方式MySQL如何執(zhí)行SELECT語句的代名詞DESCRIBE。
當(dāng)你前面一個關(guān)鍵字EXPLAIN SELECT語句,MySQL的顯示信息的查詢執(zhí)行計劃的優(yōu)化。也就是說,MySQL的說明它將如何處理SELECT,包括信息表加入的順序。可以使用EXPLAIN擴展的提供額外的信息。

選擇正確的數(shù)據(jù)類型
通常存儲在磁盤上(除了一些數(shù)據(jù)庫,內(nèi)存數(shù)據(jù)庫一樣,它是存儲在內(nèi)存中)。這意味著,為了獲取信息,為您的數(shù)據(jù)庫,它必須從磁盤讀取該信息,并把它變成一個結(jié)果集,您可以使用。磁盤I / O是極其緩慢的,尤其是在比較其他形式的數(shù)據(jù)存儲。
當(dāng)你的數(shù)據(jù)庫的增長要大,開始讀取時間要長。設(shè)計拙劣的數(shù)據(jù)庫處理這個問題比他們實際需要的磁盤上分配更多的空間。這意味著該數(shù)據(jù)庫占用空間的磁盤的使用效率低下。
選擇正確的數(shù)據(jù)類型,可以幫助確保我們存儲的數(shù)據(jù),使數(shù)據(jù)庫盡可能的小。為此,我們只選擇我們所需要的數(shù)據(jù)類型。

使用持久連接
使用永久連接的原因是減少數(shù)量的連接是相當(dāng)昂貴的,即使他們更快的與MySQL與大多數(shù)其他數(shù)據(jù)庫。
有一些爭論這個話題,在網(wǎng)絡(luò)上mysqli擴展已禁用持久性連接功能,所以我會寫更多關(guān)于這個主題。持久連接的唯一的缺點是,如果你有多個并發(fā)連接,可以達(dá)到max_connections設(shè)置。這是很容易改變Apache的設(shè)置,所以我不認(rèn)為這是原因為什么你不應(yīng)該使用持久連接。

持久連接是特別有用的,如果你有另一臺計算機上的數(shù)據(jù)庫服務(wù)器。由于上述缺點,明智地使用它們。

了解查詢緩存
查詢緩存存儲的SELECT語句的文本,連同相應(yīng)的結(jié)果發(fā)送到客戶端。如果相同的語句被接收后,服務(wù)器從查詢緩存中,而不是分析和再次執(zhí)行該語句檢索結(jié)果。查詢緩存是共享的會話之間,這樣的結(jié)果集所產(chǎn)生的一個客戶端可以發(fā)送另一個客戶端發(fā)出的相同的查詢。

查詢緩存的環(huán)境中,可能是有用的,你有表不經(jīng)常改變,服務(wù)器接收到許多相同的查詢。對于許多Web服務(wù)器產(chǎn)生許多動態(tài)頁面的基于數(shù)據(jù)庫的內(nèi)容,這是一個典型的情況。

查詢緩存不返回過時的數(shù)據(jù)。在查詢緩存表被修改時,任何相關(guān)的條目將被刷新。

你怎么找到我的MySQL查詢緩存是工作或沒有?
MySQL提供的統(tǒng)計資料,只需鍵入下面的命令在mysql>提示符下:

復(fù)制代碼 代碼如下:


mysql> show variables like 'query%';


不要使用索引列的功能
列上的索引可以是偉大的性能增益,但如果你使用該列中的函數(shù),指數(shù)是從來沒有使用過。
總是嘗試重寫查詢不使用索引列的功能。

復(fù)制代碼 代碼如下:


WHERE TO_DAYS(CURRENT_DATE) - TO_DAYS(event_date) <= 7


可能是

復(fù)制代碼 代碼如下:


WHERE event_date >= '2011/03/15' - INTERVAL 7 DAYS


今天的日期是從PHP生成。這樣一來,指數(shù)列EVENT_DATE的查詢緩存內(nèi)可存儲和查詢。
了解禪宗的SQL編碼
SQL代碼是優(yōu)化數(shù)據(jù)庫性能的基礎(chǔ)。主SQL編碼技術(shù),如重寫子查詢的SQL語句使用連接,消除了連接和類似的游標(biāo)。
通過編寫巨大SQL代碼數(shù)據(jù)庫的性能將是巨大的。
使用ON DUPLICATE KEY UPDATE
如果你指定ON DUPLICATE KEY UPDATE,將某行插入,會導(dǎo)致在一個UNIQUE索引或PRIMARY KEY重復(fù)的值,更新舊行。

復(fù)制代碼 代碼如下:


INSERT INTO wordcount (word, count) VALUES ('a_word',1) ON DUPLICATE KEY UPDATE count=count+1;


您保存訪問服務(wù)器(然后選擇更新),清理你的代碼刪除所有,如果record_exists插入其他更新。
如果按照此提示,數(shù)據(jù)庫將不勝感激給你。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 济源市| 临澧县| 平阴县| 喀什市| 确山县| 临安市| 萨嘎县| 景宁| 巴林右旗| 孟州市| 海晏县| 葫芦岛市| 莆田市| 来凤县| 高青县| 铁岭县| 扎赉特旗| 峨边| 兴文县| 屏南县| 临漳县| 满城县| 儋州市| 东乡| 会昌县| 泸西县| 高阳县| 南平市| 克拉玛依市| 全椒县| 武邑县| 广昌县| 信宜市| 甘肃省| 河东区| 迭部县| 阿坝县| 宝应县| 大名县| 阜宁县| 从江县|