首頁 資料庫 mysql教程 10個技巧優化資料庫速度

10個技巧優化資料庫速度

Dec 15, 2016 pm 03:51 PM
資料庫最佳化

10條技巧優化資料庫速度

  大多數網站的內容都存在資料庫裡,使用者透過要求來存取內容。資料庫非常的快,有許多技巧能讓你優化資料庫的速度,使你不浪費伺服器的資源。在這篇文章中,我收錄了十個優化資料庫速度的技巧。

  1、小心設計資料庫

  第一個技巧也許看來理所當然,但事實上大部分資料庫的問題都來自於設計不好的資料庫結構。

  譬如我曾經遇見過將客戶端資訊和支付資訊儲存在同一個資料庫列中的例子。對於系統和用資料庫的開發者來說,這很糟糕。

  新建資料庫時,應將資訊儲存在不同的表裡,採用標準的命名方式,並採用主鍵。

  來源: http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/

  2、清楚你需要優化的地方

 查詢語句,清楚的知道這個語句的結果是非常有幫助的。採用EXPLAIN語句,你將獲得很多有用的信息,下面來看個例子:

     EXPLAIN SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column;p.com /doc/refman/5.0/en/using-explain.html

  3、最快的查詢語句…是那些你沒發送的語句

  每次你向資料庫發送一條語句,你都會用掉很多伺服器資源。所以在很高流量的網站中,最好的方法就是將你的查詢語句快取起來。

  有許多種緩存語句的方法,下面列出了幾個:

   AdoDB: AdoDB是一個php的資料庫簡化函式庫。使用它,你可以選用不同的資料庫系統(MySQL, PostGreSQL, Interbase等等),而且它就是為了速度而設計的。 AdoDB提供了簡單但強大的快取系統。還有,AdoDB擁有BSD許可,你可以在你的專案中免費使用它。對於商業化的項目,它也有LGPL許可。

   Memcached:Memcached是一種分散式記憶體快取系統,它可以減輕資料庫的負載,來加速基於動態資料庫的網站。

   CSQL Cache: CSQL快取是一個開源的資料快取架構。我沒有試過它,但它看起來非常的棒。

  4、不要select你不需要的

  獲取想要的數據,一種非常常見的方式就是採用*字符,這會列出所有的列。

     SELECT * FROM wp_posts;

  然而,你應該只列出你需要的列,如下所示。如果在一個非常小型的網站,譬如,一分鐘一個用戶訪問,可能沒有什麼分別。然而如果像Cats Who Code這樣大流量的網站,這就為資料庫省了很多事。

     SELECT title, excerpt, author FROM wp_posts;

  5、採用LIMIT

  只獲得某個特定行數的資料是非常常見的。譬如部落格每頁只顯示十篇文章。這時,你應該使用LIMIT,來限定你想要選取的資料的行數。

  如果沒有LIMIT,表有100,000行數據,你將會遍歷所有的行數,這對於伺服器來說是不必要的負擔。

     SELECT title, excerpt, author FROM wp_posts LIMIT 10;

  6、避免循環中的查詢

   當循環中使用時將在PHP中使用。但這麼做給你的資料庫增加了負擔。

  下面的例子說明了「在循環語句中嵌套查詢語句」的問題:

     foreach ($display_order as $id => $ordinal id";          mysql_query($sql);       }

   你能這麼做:

      WHEN 1 THEN 3             WHEN 2 THEN 4             WHEN 3 THEN 5     

  來源: http://www.karlrixon.co.uk/articles/sql/update-multiple-rows-with-different-values-and-a-single-sql-query/

 替換子查詢

  程式設計師可能會喜歡用子查詢,甚至濫用。以下的子查詢非常有用:

     SELECT a.id,            (SELECT MAX(created)            FROM posts  )            FROM posts   aut. test_post FROM authors a

  雖然子查詢很有用,但join語句可以替換它, join語句執行起來更快。

     SELECT a.id, MAX(p.created) AS latest_post      FROM authors a      INNER JOIN posts p       BYc ON (a.id = p.aut _   來源: http://20bits.com/articles /10-tips-for-optimizing-mysql-queries-that-dont-suck/

  8、小心使用通配符

  通配符非常好用,在搜尋資料的時候可以用通配符來取代一個或多個字元。我不是說不能用,而是,應該小心使用,並且不要使用全詞通配符(full wildcard),前綴通配符或後置通配符可以完成相同的任務。

  事實上,在百萬數量級的資料上採用全詞通配符來搜尋會讓你的資料庫當機。

     #Full wildcard       SELECT * FROM TABLE WHERE COLUMN LIKE '%hello%';       #Postfix wildcard KEm    efix wildcard       SELECT * FROM TABLE WHERE COLUMN LIKE  '%hello';

  來源: http://hungred.com/useful-information/ways-optimize-sql-queries/

  9、採用UNION來代替OR

  ELECT 語句來: WHERE a.p = b.q or a.x = b.y;

  UNION語句,你可以將2個或更多select語句的結果拼在一起。下面的例子回傳的結果同上面的一樣,但是速度要快一點:

      SELECT * FROM a, b WHERE a.p = b.q        UNION        SELECT * FROMo, b.E awww. .bcarter.com/optimsql.htm

  10、使用索引

  數據庫索引和你在圖書館中見到的索引類似:能讓你更快速的獲取想要的信息,正如圖書館中的索引能讓讀者更快的找到想要的書一樣。


  可以在一個欄位上建立索引,也可以在多個欄位上建立。索引是一種資料結構,它將表中的一列或多列的值以特定的順序組織起來。

  下面的語句在Product表的Model欄位上建立索引。這個索引的名字叫做idxModel

      CREATE INDEX idxModel ON Product (Model);

以上就是10條技巧優化資料庫速度的內容,更多相關文章請注意PHPcn(www.php.cn)!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Hibernate 如何最佳化資料庫查詢效能? Hibernate 如何最佳化資料庫查詢效能? Apr 17, 2024 pm 03:00 PM

優化Hibernate查詢性能的技巧包括:使用延遲加載,推遲加載集合和關聯對象;使用批處理,組合更新、刪除或插入操作;使用二級緩存,將經常查詢的對象存儲在內存中;使用HQL外連接,檢索實體及其相關實體;最佳化查詢參數,避免SELECTN+1查詢模式;使用遊標,以區塊的方式檢索海量資料;使用索引,提高特定查詢的效能。

如何透過資料庫優化提高Python網站的存取速度? 如何透過資料庫優化提高Python網站的存取速度? Aug 07, 2023 am 11:29 AM

如何透過資料庫優化提高Python網站的存取速度?摘要在建立Python網站時,資料庫是一個關鍵的組成部分。如果資料庫存取速度慢,會直接影響網站的效能和使用者體驗。本文將討論一些優化資料庫的方法,以提高Python網站的存取速度,並附有一些範例程式碼。引言對於大多數Python網站來說,資料庫是儲存和檢索資料的關鍵部分。如果不加以優化,資料庫可能成為效能瓶頸。本

Spring Boot的效能優化秘技:打造疾風般的快速應用 Spring Boot的效能優化秘技:打造疾風般的快速應用 Feb 25, 2024 pm 01:01 PM

SpringBoot是一款廣受歡迎的Java框架,以其簡單易用和快速開發而聞名。然而,隨著應用程式的複雜性增加,效能問題可能會成為瓶頸。為了幫助您打造疾風般快速的springBoot應用,本文將分享一些實用的效能優化秘訣。優化啟動時間應用程式的啟動時間是使用者體驗的關鍵因素之一。 SpringBoot提供了多種最佳化啟動時間的途徑,例如使用快取、減少日誌輸出和最佳化類別路徑掃描。您可以透過在application.properties檔案中設定spring.main.lazy-initialization

如何透過使用複合索引來提高MySQL效能 如何透過使用複合索引來提高MySQL效能 May 11, 2023 am 11:10 AM

在MySQL資料庫中,索引是一種非常重要的效能最佳化手段。當表中的資料量增加時,不適當的索引會導致查詢變慢,甚至出現資料庫崩潰的情況。為了提高資料庫效能,在設計表結構和查詢語句時需要合理地使用索引。而複合索引是一種較為高級的索引技術,透過將多個欄位作為索引的組合來​​提高查詢的效率。在本文中,將詳細介紹如何透過使用複合索引來提高MySQL的效能。什麼是複合索引複合

Java Spring Boot Security效能最佳化:讓你的系統飛起來 Java Spring Boot Security效能最佳化:讓你的系統飛起來 Feb 19, 2024 pm 05:27 PM

一、代码优化避免使用过多的安全注解:在Controller和Service中,尽量减少使用@PreAuthorize和@PostAuthorize等注解,这些注解会增加代码的执行时间。优化查询语句:使用springDataJPA时,优化查询语句可以减少数据库的查询时间,从而提高系统性能。缓存安全信息:将一些常用的安全信息缓存起来,可以减少数据库的访问次数,提高系统的响应速度。二、数据库优化使用索引:在经常被查询的表上创建索引,可以显著提高数据库的查询速度。定期清理日志和临时表:定期清理日志和临时

從技術角度來看,為什麼Oracle能夠擊敗MySQL? 從技術角度來看,為什麼Oracle能夠擊敗MySQL? Sep 08, 2023 pm 04:15 PM

從技術角度來看,為什麼Oracle能夠擊敗MySQL?近年來,資料庫管理系統(DBMS)在資料儲存和處理方面扮演著至關重要的角色。 Oracle和MySQL作為兩款受歡迎的DBMS,一直以來都備受矚目。然而,從技術角度來看,Oracle相對於MySQL在某些方面更為強大,因此Oracle能夠擊敗MySQL。首先,Oracle在處理大規模資料時表現出色。 Oracl

Linux系統中常見的資料庫問題及其解決方法 Linux系統中常見的資料庫問題及其解決方法 Jun 18, 2023 pm 03:36 PM

隨著電腦技術的不斷發展和資料規模的不斷增長,資料庫成為了一項至關重要的技術。然而,在Linux系統中使用資料庫還會遇到一些常見的問題,本文將介紹一些常見的Linux系統中的資料庫問題以及它們的解決方法。資料庫連線問題在使用資料庫時,有時會出現連線失敗或連線逾時等問題,造成這些問題的原因可能是資料庫設定錯誤或存取權限不足。解決方法:檢查資料庫的設定文件,確

如何優化自訂WordPress外掛的資料庫查詢 如何優化自訂WordPress外掛的資料庫查詢 Sep 06, 2023 am 09:22 AM

如何优化自定义WordPress插件的数据库查询摘要:对于使用WordPress开发自定义插件的开发者来说,了解如何优化数据库查询是至关重要的。本文将介绍一些优化技巧,帮助开发者提高自定义插件的性能。导言:随着WordPress网站的增长和流量的增加,数据库查询的性能变得越来越关键。优化数据库查询可以显著提高网站的速度和响应时间,从而提供更好的用户体验。本文

See all articles