《Mysql入門MySQL性能優(yōu)化的一些技巧幫助你的數(shù)據(jù)庫》要點:
本文介紹了Mysql入門MySQL性能優(yōu)化的一些技巧幫助你的數(shù)據(jù)庫,希望對您有用。如果有疑問,可以聯(lián)系我們。
你完成了你的品牌新的應用程序,一切工作就像一個魅力.用戶來使用你的網(wǎng)絡.每個人是幸福的.
然后,突然間,一個大爆發(fā)的用戶殺死你的MySQL服務器,您的網(wǎng)站已關閉.出了什么問題?你怎么能阻止它嗎?
以下是MySQL性能優(yōu)化的一些技巧,將幫助你,幫助你的數(shù)據(jù)庫.
大處著眼 在早期的發(fā)展階段,你應該知道預期到您的應用程序的用戶數(shù).如果你希望很多用戶來說,你應該想想大,從一開始,計劃進行復制,可擴展性和性能.
但是,如果你優(yōu)化你的SQL代碼,架構和索引策略,也許你不會需要大環(huán)境.你必須總是三思而后行的性能和可擴展性是不一樣的.
請務必使用EXPLAIN EXPLAIN語句可以被用來作為獲取信息的方式MySQL如何執(zhí)行SELECT語句的代名詞DESCRIBE.
當你前面一個關鍵字EXPLAIN SELECT語句,MySQL的顯示信息的查詢執(zhí)行計劃的優(yōu)化.也就是說,MySQL的說明它將如何處理SELECT,包括信息表加入的順序.可以使用EXPLAIN擴展的提供額外的信息.
選擇正確的數(shù)據(jù)類型 通常存儲在磁盤上(除了一些數(shù)據(jù)庫,內存數(shù)據(jù)庫一樣,它是存儲在內存中).這意味著,為了獲取信息,為您的數(shù)據(jù)庫,它必須從磁盤讀取該信息,并把它變成一個結果集,您可以使用.磁盤I / O是極其緩慢的,尤其是在比較其他形式的數(shù)據(jù)存儲.
當你的數(shù)據(jù)庫的增長要大,開始讀取時間要長.設計拙劣的數(shù)據(jù)庫處理這個問題比他們實際需要的磁盤上分配更多的空間.這意味著該數(shù)據(jù)庫占用空間的磁盤的使用效率低下.
選擇正確的數(shù)據(jù)類型,可以幫助確保我們存儲的數(shù)據(jù),使數(shù)據(jù)庫盡可能的小.為此,我們只選擇我們所需要的數(shù)據(jù)類型.
使用持久連接 使用永久連接的原因是減少數(shù)量的連接是相當昂貴的,即使他們更快的與MySQL與大多數(shù)其他數(shù)據(jù)庫.
有一些爭論這個話題,在網(wǎng)絡上mysqli擴展已禁用持久性連接功能,所以我會寫更多關于這個主題.持久連接的唯一的缺點是,如果你有多個并發(fā)連接,可以達到max_connections設置.這是很容易改變Apache的設置,所以我不認為這是原因為什么你不應該使用持久連接.
持久連接是特別有用的,如果你有另一臺計算機上的數(shù)據(jù)庫服務器.由于上述缺點,明智地使用它們.
了解查詢緩存 查詢緩存存儲的SELECT語句的文本,連同相應的結果發(fā)送到客戶端.如果相同的語句被接收后,服務器從查詢緩存中,而不是分析和再次執(zhí)行該語句檢索結果.查詢緩存是共享的會話之間,這樣的結果集所產(chǎn)生的一個客戶端可以發(fā)送另一個客戶端發(fā)出的相同的查詢.
查詢緩存的環(huán)境中,可能是有用的,你有表不經(jīng)常改變,服務器接收到許多相同的查詢.對于許多Web服務器產(chǎn)生許多動態(tài)頁面的基于數(shù)據(jù)庫的內容,這是一個典型的情況.
查詢緩存不返回過時的數(shù)據(jù).在查詢緩存表被修改時,任何相關的條目將被刷新.
你怎么找到我的MySQL查詢緩存是工作或沒有? MySQL提供的統(tǒng)計資料,只需鍵入下面的命令在mysql>提示符下:
代碼如下:
mysql> show variables like 'query%';
不要使用索引列的功能 列上的索引可以是偉大的性能增益,但如果你使用該列中的函數(shù),指數(shù)是從來沒有使用過.
總是嘗試重寫查詢不使用索引列的功能.
代碼如下:
WHERE TO_DAYS(CURRENT_DATE) - TO_DAYS(event_date) <= 7
可能是
代碼如下:
WHERE event_date >= '2011/03/15' - INTERVAL 7 DAYS
今天的日期是從
PHP生成.這樣一來,指數(shù)列EVENT_DATE的查詢緩存內可存儲和查詢.
了解禪宗的SQL編碼 SQL代碼是優(yōu)化數(shù)據(jù)庫性能的基礎.主SQL編碼技術,如重寫子查詢的SQL語句使用連接,消除了連接和類似的游標.
通過編寫巨大SQL代碼數(shù)據(jù)庫的性能將是巨大的.
使用ON DUPLICATE KEY UPDATE 如果你指定ON DUPLICATE KEY UPDATE,將某行插入,會導致在一個UNIQUE索引或PRIMARY KEY重復的值,更新舊行.
代碼如下:
INSERT INTO wordcount (word, count) VALUES ('a_word',1) ON DUPLICATE KEY UPDATE count=count+1;
您保存訪問服務器(然后選擇更新),清理你的代碼刪除所有,如果record_exists插入其他更新.
如果按照此提示,數(shù)據(jù)庫將不勝感激給你.
轉載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4860.html