浅谈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 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Windows 11 で RAID 1 を構成する手順 Windows 11 で RAID 1 を構成する手順 Sep 22, 2023 pm 03:05 PM

    Windows 11 には厳しい要件があり、そのストレージを入手するのに苦労した後、ハード ドライブとデータを失うのは残念なことです。さて、ハードドライブの故障に備えて役立つ良いニュースがあります。 Windows の組み込みツールを使用すると、すべてのデータをあるドライブから別のドライブにコピーできます。こうすることで、1 つのドライブに障害が発生した場合でも、元のデータを代替ドライブにミラーリングして再構築できます。 Windows 11 では RAID を実行できますか? Windows 記憶域スペース機能を使用すると、Windows 11 で RAID を実行できます。この機能を使用すると、パフォーマンスを低下させることなく、コンピュータに直接接続されたハードドライブを使用して複数の仮想ディスクを作成できます。 Raid の利点: ディスクコストの削減

    Windows 11 で外付けハードドライブを RAID する方法 Windows 11 で外付けハードドライブを RAID する方法 Sep 16, 2023 pm 10:05 PM

    RAID または独立ディスクの冗長アレイは、複数の外部ドライブを 1 つに結合するデータ ストレージ テクノロジです。大容量ハードドライブが高価だった時代に広く使用されていましたが、今でも RAID 外部ドライブ方式を好む人が多くいます。 RAID にはいくつかのレベルがあり、それぞれが特定の目的を果たします。平均的なユーザーは複雑さを深く掘り下げる必要はなく、RAID0 または RAID1 の単純なセットアップで問題なく動作するはずであることに留意してください。外付けドライブの RAID を検討する理由: PC のパフォーマンスの向上 構成が簡単で、既存の代替ドライブよりも安価 データの読み取りと書き込みが高速化 ミラーリングによる効率的なバックアップ ソリューション Windows 11 で外付けドライブを RAID する方法は?外付けハードドライブを RAID する前に、まず次のことに注意する必要があります。

    Linux で RAID ディスクアレイ情報を確認する方法 Linux で RAID ディスクアレイ情報を確認する方法 May 16, 2023 pm 09:46 PM

    Linux でソフトおよびハード RAID 情報を表示する方法。ソフトウェア RAID: RAID レベル、ステータス、およびその他の情報を確認するには、Linux システム自体を介してのみ cat/proc/mdstat を表示できます。ハードウェア RAID: 最善の方法は、インストールされている RAID メーカーの管理ツール (cmdline やグラフィカル インターフェイスなど) を通じて確認することです。たとえば、adapterc のハードウェア カードは、次のコマンドで表示できます。 #/usr/dpt/raidutil-lall 非常に詳細な情報を確認できます。もちろん、多くの場合、対応する管理ツールがインストールされていません。Linux 自体にのみ依存できる場合は、一般に次の 2 つの方法を知っています: #dmesg|grep-irai

    MySQL を通じて AVG 機能を最適化してパフォーマンスを向上させる方法 MySQL を通じて AVG 機能を最適化してパフォーマンスを向上させる方法 May 11, 2023 am 08:00 AM

    MySQL の AVG 関数を最適化してパフォーマンスを向上させる方法 MySQL は、多くの強力な機能を備えた人気のあるリレーショナル データベース管理システムです。 AVG 関数は平均値の計算に広く使用されていますが、この関数はデータ セット全体を走査する必要があるため、大規模なデータの場合にはパフォーマンスの問題が発生します。この記事では、MySQL を通じて AVG 機能を最適化し、パフォーマンスを向上させる方法を詳しく紹介します。 1. インデックスの使用 インデックスは MySQL 最適化の最も重要な部分です。

    TokiDB エンジンに基づいた MySQL の最適化: 書き込みと圧縮のパフォーマンスを向上 TokiDB エンジンに基づいた MySQL の最適化: 書き込みと圧縮のパフォーマンスを向上 Jul 25, 2023 pm 11:45 PM

    TokiDB エンジンに基づく MySQL の最適化: 書き込みと圧縮のパフォーマンスの向上 はじめに: 一般的に使用されるリレーショナル データベース管理システムとして、MySQL は、ビッグ データ時代の文脈において、書き込み圧力とストレージ要件の増大に直面しています。この課題に対処するために、TokuDB エンジンが誕生しました。この記事では、TokuDB エンジンを使用して MySQL の書き込みパフォーマンスと圧縮パフォーマンスを向上させる方法を紹介します。 1.TokuDBエンジンとは何ですか? TokiDB エンジンは、大量の書き込みを処理するように設計されたビッグデータ指向のエンジンです。

    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 の最適化とセキュリティ プロジェクトの経験を分析します。 1. パフォーマンスの最適化データベース アーキテクチャ設計: 電子商取引アプリケーションでは、データベース設計が鍵となります。合理的なテーブル構造設計とインデックス設計により、データベースのクエリ パフォーマンスを向上させることができます。同時に、テーブル分割およびパーティション化テクノロジを使用すると、単一テーブル内のデータ量が削減され、クエリ効率が向上します。

    MySQL 接続数管理を最適化する方法 MySQL 接続数管理を最適化する方法 Mar 16, 2024 am 08:12 AM

    MySQL の接続数管理を最適化する方法 MySQL は、さまざまな Web サイトやアプリケーションで広く使用されている人気のあるリレーショナル データベース管理システムです。実際のアプリケーションプロセスでは、MySQL の接続数の管理は非常に重要な問題であり、特に同時実行性が高い状況では、接続数を合理的に管理することでシステムのパフォーマンスと安定性を向上させることができます。この記事では、MySQL の接続数管理を最適化する方法を詳細なコード例を含めて紹介します。 1. 接続数管理を理解する MySQL では、接続数とはシステムが同時に接続できる接続の数を指します。

    See all articles