首頁 資料庫 mysql教程 浅谈MySQL学习及思考

浅谈MySQL学习及思考

Jun 07, 2016 pm 05:40 PM
mysql優化 mysql設計 raid

本博文旨在结合自己看书理解,并借此图进行说明,如有谬误,望大家指正,以共同探讨为目的,交流学习。首先介绍一下架构图的由来:最近看关于mysql方面书籍的一点

 本博文旨在结合自己看书理解,并借此图进行说明,如有谬误,望大家指正,以共同探讨为目的,交流学习。

首先介绍一下架构图的由来:最近看关于mysql方面书籍的一点心得,把文字转化成图片而得,方便理解。

 

我主要从读、写、底层磁盘三方面进行阐述:

1、读操作:

  我们知道数据在读取的时候,需要从磁盘读到内存中,然后再做相应的操作,而在优化读操作的时候,主要想buffer,cache这些进行优化:

  以上是读操作的一些介绍,接下来是写操作方面的。

2、写操作:

  写操作分为热门数据和普通数据,简而言之就是按照频繁程度进行划分的。然频繁修改的数据可以和非频繁的数据进行分开。

举个例子:

  • 比如我网站每天PV 1000w,而在PV统计的表中,我每次访问就会插入一条数据,一天下来1000w,当然这还不可能是分摊在24小时,就按照10个小时的中高峰期来说,每个小时也是100w条数据,如果我的网站其他表中的跟新的数据每天2w条,相对1000w来说,就是太少了,但是这2w条数据有事比较重要的数据,如果是用户注册、客户购买商品下的订单,他可比记录PV信息更重要吧,这时候问题就出现了:我的热门数据究竟是什么?是PV统计还是订单、注册用户,不言而喻,当然其中一个还是重点数据了,所以为了不让记录PV的数据来影响更重要的数据的更新,我们可以把他分开,如果后面还有主从同步的话,分开后,同步的负载也会降低很多,这样就可以只同步2w条数据,香港空间,而不用考虑那1000w条数据了,服务器空间,进而主数据库的负载也会降低。 
  •   现在是把热门数据和普通数据分开了,但是对于高并发的数据库服务器来说,如何抗并发,这到成了一个重要的问题,当然高配服务器,集群用上,包括Nosql也用上可一解决这样的问题,如果在设计的时候能使用队列机制,这样不就更好了嘛!(地铁上看到一句广告语:有序方能通畅!)

      当然你可能有更好的方法,香港虚拟主机,可以共同交流。

    3、底层磁盘规划:

     

     

     

  • RAID6: 
  • RADI6技术是在RAID5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID5等级。与RAID5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图。这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID6的数据冗余性能相当好。但是,由于增加了一个校验,所以写入的效率较RAID5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。 
  •  

      而对于热门数据可以使用RAID10,这样他的性能和安全性会提高很多;而普通数据可以采用RAID5,主要提供安全性,像临时表这样的使用RAID0,在性能上发挥巨大的优势。

    以上均个人见解,如有疑问,可共同交流学习!

     

    本文出自 “Ro の博客” 博客,请务必保留此出处

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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

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

    熱門文章

    <🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    北端:融合系統,解釋
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

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

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    熱門話題

    Java教學
    1664
    14
    CakePHP 教程
    1423
    52
    Laravel 教程
    1318
    25
    PHP教程
    1269
    29
    C# 教程
    1248
    24
    在 Windows 11 上設定 RAID 1 的步驟 在 Windows 11 上設定 RAID 1 的步驟 Sep 22, 2023 pm 03:05 PM

    Windows11有嚴格的要求,在努力取得該儲存空間之後,遺失硬碟和資料將是一個遺憾。好吧,我們帶來了好消息,可以幫助您緩衝硬碟故障。使用內建的Windows工具,您可以將所有資料從一個磁碟機複製到另一個磁碟機。這樣,如果一個磁碟機發生故障,您可以在替換磁碟機上鏡像和重建原始資料。 Windows11可以做RAID嗎?使用Windows儲存空間功能,您可以在Windows11上執行RAID。此功能可讓您使用直接連接到電腦的硬碟建立多個虛擬磁碟,而不會降低效能。突襲的好處:降低因磁碟

    如何在 Windows 11 上 RAID 外接硬碟 如何在 Windows 11 上 RAID 外接硬碟 Sep 16, 2023 pm 10:05 PM

    RAID或獨立磁碟冗餘陣列是一種資料儲存技術,其中多個外部磁碟機組合成一個。當大型硬碟價格昂貴時,它被廣泛使用,但許多人仍然更喜歡RAID外部硬碟的方法。 RAID有幾個級別,每個級別都用於特定目的。請記住,普通用戶不必深入了解複雜性,RAID0或RAID1的簡單設定應該可以正常工作。考慮突襲外部驅動器的原因:改進了電腦的性能易於配置,比現有替代方案便宜更快的資料讀取和寫入透過鏡像實現有效的備份解決方案如何在Windows11上RAID外部驅動器?在RAID外部硬碟之前,需要注意以下幾個先

    linux怎麼查看Raid磁碟陣列信息 linux怎麼查看Raid磁碟陣列信息 May 16, 2023 pm 09:46 PM

    linux下查看軟、硬raid資訊的方法。軟體raid:只能透過linux系統本身來查看cat/proc/mdstat可以看到raid級別,狀態等資訊。硬體raid:最佳的辦法是透過已安裝的raid廠商的管理工具來查看,有cmdline,也有圖形介面。如adaptec公司的硬體卡就可以透過下面的命令進行查看:#/usr/dpt/raidutil-lall可以看到非常詳細的資訊。當然更多情況是沒有安裝對應的管理工具,只能靠linux本身的話一般我知道的是兩種方式:#dmesg|grep-irai

    如何透過MySQL對AVG函數最佳化來提高效能 如何透過MySQL對AVG函數最佳化來提高效能 May 11, 2023 am 08:00 AM

    如何透過MySQL對AVG函數最佳化來提高效能MySQL是一款流行的關聯式資料庫管理系統,其中包含了許多強大的函數以及功能。其中AVG函數被廣泛使用在計算平均值的情形,但由於這個函數需要遍歷整個資料集,所以在大規模資料的情況下會導致效能問題。本文將詳細介紹如何透過MySQL對AVG函數進行最佳化,進而提高效能。 1.使用索引索引是MySQL最佳化中最重要的一部分,

    基於TokuDB引擎的MySQL最佳化:提升寫入與壓縮效能 基於TokuDB引擎的MySQL最佳化:提升寫入與壓縮效能 Jul 25, 2023 pm 11:45 PM

    基於TokuDB引擎的MySQL最佳化:提升寫入與壓縮效能引言:MySQL作為一種常用的關聯式資料庫管理系統,在大數據時代的脈絡下,面臨越來越高的寫入壓力和儲存需求。為了應對這項挑戰,TokuDB引擎應運而生。本文將介紹如何利用TokuDB引擎來提升MySQL的寫入效能與壓縮效能。一、什麼是TokuDB引擎? TokuDB引擎是一種面向大數據的、用於處理高寫入

    如何實現MySQL底層優化:SQL語句高階優化的技巧與最佳實踐 如何實現MySQL底層優化:SQL語句高階優化的技巧與最佳實踐 Nov 08, 2023 pm 04:32 PM

    MySQL是一種廣泛使用的關聯式資料庫管理系統,常用於Web應用程式的開發與資料儲存。在實際應用中,對MySQL的底層最佳化特別重要,其中SQL語句的高階最佳化是提升資料庫效能的關鍵所在。本文將介紹實現MySQL底層優化的一些技巧和最佳實踐,以及具體的程式碼範例。確定查詢條件在編寫SQL語句時,首先要明確定義查詢條件,避免使用無限制的通配符查詢,即避免使用"%"開

    MySQL在電子商務應用中的最佳化與安全專案經驗解析 MySQL在電子商務應用中的最佳化與安全專案經驗解析 Nov 03, 2023 am 10:42 AM

    MySQL是一種廣泛應用於電子商務領域的關聯式資料庫管理系統。在電子商務應用中,對MySQL進行最佳化和安全工作是至關重要的。本文將解析MySQL在電子商務應用中的最佳化與安全專案經驗。一、效能最佳化資料庫架構設計:在電子商務應用中,資料庫的設計是關鍵。合理的表結構設計和索引設計能夠提高資料庫的查詢效能。同時,使用分錶和分區技術可以減少單一表的資料量,並提高查詢效率

    如何最佳化MySQL連線數管理 如何最佳化MySQL連線數管理 Mar 16, 2024 am 08:12 AM

    如何優化MySQL連線數管理MySQL是一種流行的關聯式資料庫管理系統,廣泛應用於各種網站和應用程式。在實際的應用過程中,MySQL連線數管理是一個非常重要的問題,尤其是在高並發情況下,合理管理連線數可以提高系統的效能和穩定性。本文將介紹如何最佳化MySQL連線數管理,包括詳細的程式碼範例。一、理解連線數管理在MySQL中,連線數是指系統能夠同時連

    See all articles