久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      MySQL怎么優(yōu)化性能?優(yōu)化技巧分享

      MySQL怎么優(yōu)化性能?優(yōu)化技巧分享

      程序員必備接口測試調(diào)試工具:立即使用
      Apipost = Postman + Swagger + Mock + Jmeter
      Api設(shè)計(jì)、調(diào)試、文檔、自動(dòng)化測試工具
      后端、前端、測試,同時(shí)在線協(xié)作,內(nèi)容實(shí)時(shí)同步

      當(dāng)談到數(shù)據(jù)庫性能優(yōu)化時(shí),最重要的事情就是選擇正確的。你應(yīng)該決定你的應(yīng)用程序是需要關(guān)系型數(shù)據(jù)庫還是非關(guān)系型數(shù)據(jù)庫。即使在一種類型中,你也將有多種選擇。 與關(guān)系數(shù)據(jù)庫一樣,你可能會(huì)發(fā)現(xiàn) Oracle、MySQL、SQL Server 和 PostgreSQL。 另一方面,非關(guān)系型數(shù)據(jù)庫引入了 MongoDB、Cassandra 和 CouchDB。

      你可能希望我建議使用非關(guān)系數(shù)據(jù)庫以獲得更快的讀/寫性能。 但是,通過一些改進(jìn)和調(diào)整,您可以推動(dòng)關(guān)系數(shù)據(jù)庫超出其已知限制。 因此,在本文中,我將向您介紹一些技巧,以使您的 MySQL 數(shù)據(jù)庫更快。

      如果您特別想知道為什么要使用 MySQL,那么答案很簡單,因?yàn)樗敲赓M(fèi)的、開源的,并且在 PHP 社區(qū)中非常受歡迎,而 Oracle 因價(jià)格昂貴而未被廣泛使用。 其他選項(xiàng)不如 MySQL 受歡迎。

      MySQL服務(wù)器配置:

      好吧,首先你應(yīng)該知道配置文件的位置,具體取決于你的操作系統(tǒng)。在 Linux 系統(tǒng)中,它位于“/etc/mysql/my.cnf”中。
      現(xiàn)在是時(shí)候選擇你的引擎 InnoDB 和 MyISAM 了。為了讓選擇更容易,你應(yīng)該知道 InnoDB 成為 MySQL 5.5 的默認(rèn)引擎,因?yàn)樗С帧靶屑?jí)鎖定、外鍵和事務(wù)”,而 MyISAM 不支持任何提到的特性,這使得它在現(xiàn)代很少有用應(yīng)用程序。
      選擇正確的引擎后,是時(shí)候在 my.cnf 文件中設(shè)置一些配置變量了。

      max_connection 變量:

      max_connection 變量表示應(yīng)用程序允許的連接數(shù)。默認(rèn)值為 151 連接,但是,如果你收到錯(cuò)誤消息“MySQL 錯(cuò)誤,連接太多…”,你可以輕松增加此數(shù)量

      最大連接數(shù) = 170

      innodb_buffer_pool_size 變量:

      為了加快速度,MySQL 會(huì)將數(shù)據(jù)緩存在你的服務(wù)器內(nèi)存中,這個(gè)變量告訴 MySQL 它可以使用多少 GigaBytes。如果你在數(shù)據(jù)庫中保存大 blob,此變量非常有用。你可以將其設(shè)置為服務(wù)器內(nèi)存的 80–90%。因此,如果你的服務(wù)器內(nèi)存為 16GB,則可以將其設(shè)置為 14GB。

      innodb_buffer_pool_size = 14GB

      innodb_io_capacity 變量:

      這個(gè)變量告訴 MySQL 它可以使用多少輸入/輸出操作,它取決于你的磁盤。例如,單個(gè) 7200 RPM 驅(qū)動(dòng)器限制為 200 I/O,而企業(yè) SSD 磁盤限制為 50,000 I/O。你可以在操作系統(tǒng)上通過命令行輕松找到輸入/輸出值,并將變量設(shè)置為可用 I/O 的 90%,因此 MySQL 永遠(yuǎn)不會(huì)使用太多 I/O 操作。

      innodb_io_capacity = 21000

      query_cache_limit 和 query_cache_size 變量:

      MySQL 也支持內(nèi)存中緩存數(shù)據(jù),但是我們不能依賴它來做緩存系統(tǒng),因?yàn)槊看文愕某绦蛳驍?shù)據(jù)庫表寫入數(shù)據(jù)的時(shí)候,MySQL 將會(huì)重建整個(gè)表的查詢緩存。因此如果你的程序有很高的負(fù)載,MySQL 緩存將完全無用,這種情況下,兩個(gè)變量最好設(shè)置為0,節(jié)省MySQL緩存的開銷,相反,你可以使用類似 Redis 的東西來管理緩存。

      query_cache_limit = 0  query_cache_size = 0

      慢查詢?nèi)罩?

      慢查詢?nèi)罩緦?huì)顯示你的哪些查詢超過你定義的閾值,而不需要猜測哪個(gè)查詢更慢。
      首先,你必須在你的配置文件中啟用 slow_query_log 。在Linux服務(wù)器中,打開 「/etc/mysql/my.cnf」或者你系統(tǒng)上同等的文件。
      并添加:

      slow_query_log = 1  long_query_time = 1

      那么,這兩個(gè)選項(xiàng)將啟用慢查詢?nèi)罩荆⒂涗浫魏涡枰^一秒的查詢。如果你喜歡在一個(gè)表中而不是在一個(gè)文件中查看日志,你可以添加:

      log_output = 'TABLE'

      然后你可以在「slow_log」表中找到你的日志。你可以在那里看到所有執(zhí)行超過一秒的慢查詢的信息。這些信息包括查詢的確切執(zhí)行時(shí)間和受影響的行數(shù),以及哪個(gè)用戶執(zhí)行的它。

      查詢優(yōu)化

      在你得到所有的慢查詢后,你需要一種方式來優(yōu)化它們,使它們更快。因此,你可以在查詢語句前面加上「explain」關(guān)鍵詞,從而獲得相關(guān)查詢的詳情信息,例如:explain select * from users where active=1;

      「解釋」關(guān)鍵字可以幫助你定義查詢命中哪些索引以及為獲取數(shù)據(jù)而查詢的行數(shù)。此信息可以告訴你是否需要?jiǎng)?chuàng)建

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)