ホームページ データベース mysql チュートリアル MYSQL性能调优及架构设计-影响MYSQL性能的相关因素之实例分析_MySQL

MYSQL性能调优及架构设计-影响MYSQL性能的相关因素之实例分析_MySQL

Jun 01, 2016 pm 01:45 PM
影響 ユーザー・グループ 表面

bitsCN.com

需求概述

一个简单的讨论区系统,需要有用户,用户组,组讨论区这三部分基本功能

简要分析

1) 须要存放用户数据的表;

2) 须要存放分组信息和用户与组关系的表;

3) 须要存放讨论信息的表

 

解决方案

原始方案一:

分别用4个表来存放用户,用户组,用户与组关系,以及各组的讨论帖子的信息。

user用户表

 

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

 

 

 

nick_name

varchar(32)

NO

 

NULL

 

password

char(64)

YES

 

NULL

 

email

varchar(32)

NO

 

NULL

 

status

varchar(16)

NO

 

NULL

 

sexuality

char(1)

NO

 

NULL

 

msn

varchar(32)

YES

 

NULL

 

sign

varchar(64)

YES

 

NULL

 

brithday

date

YES

 

NULL

 

hobby

varchar(64)

YES

 

NULL

 

location

varchar(64)

YES

 

NULL

 

description

varchar(1024)

YES

 

NULL

 

 

groups分组表

 

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

 

 

 

gmt_create

datetime

NO

 

NULL

 

gmt_modified

datetime

NO

 

NULL

 

name

varchar(32)

NO

 

NULL

 

status

varchar(16)

NO

 

NULL

 

description

varchar(1024)

YES

 

NULL

 

 

user_group关系表

 

Field

Type

Null

Key

Default

Extra

user_id

int(11)

NO

MUL

NULL

 

group_id

int(11)

NO

MUL

NULL

 

user_type

int(11)

NO

 

NULL

 

gmt_create

datetime

NO

 

NULL

 

gmt_modified

datetime

NO

 

NULL

 

status

varchar(16)

NO

 

NULL

 

 

group_message讨论组帖子表

 

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

 

NULL

 

gmt_create

datetime

NO

 

NULL

 

gmt_modified

datetime

NO

 

NULL

 

group_id

int(11)

NO

 

NULL

 

user_id

int(11)

NO

 

NULL

 

subject

varchar(128)

NO

 

NULL

 

content

text

YES

 

NULL

 

 

优化后方案二如下

user用户表分成user用户表与user_profile表

group_message讨论组表分成group_message讨论组与group_message_content

user用户表

 

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

 

 

 

nick_name

varchar(32)

NO

 

NULL

 

password

char(64)

YES

 

NULL

 

email

varchar(32)

NO

 

NULL

 

status

varchar(16)

NO

 

NULL

 

 

user_profile用户属性表

 

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

 

 

 

sexuality

char(1)

NO

 

NULL

 

msn

varchar(32)

YES

 

NULL

 

sign

varchar(64)

YES

 

NULL

 

brithday

date

YES

 

NULL

 

hobby

varchar(64)

YES

 

NULL

 

location

varchar(64)

YES

 

NULL

 

description

varchar(1024)

YES

 

NULL

 

 

group_message讨论组帖子表

 

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

 

NULL

 

gmt_create

datetime

NO

 

NULL

 

gmt_modified

datetime

NO

 

NULL

 

group_id

int(11)

NO

 

NULL

 

user_id

int(11)

NO

 

NULL

 

subject

varchar(128)

NO

 

NULL

 

author

varchar(32)

NO

 

NULL

 

 

group_message_content帖子内容表

 

Field

Type

Null

Key

Default

Extra

group_msg_id

int(11)

NO

 

 

 

content

text

NO

 

NULL

 

分析考虑:

1. 从实际出发,一个讨论区系统,访问最多的页面应该是帖子标题列表页面。而帖子标题列表页面最主要的信息都来自于group_message表中,同时帖子标题后面的作者一般都是通过用户名(昵称)来展示。因此:

1) 按照第一种解决方案:

SELECT t.id, t.subject, user.id, u.nick_name

FROM

(

SELECT id, user_id, subject

FROM group_message

WHERE group_id = ?

ORDER BY gmt_modified DESC LIMIT 20

) t, user u

WHERE t.user_id = u.id

2) 按照第二种解决方案:

SELECT t.id, t.subject, t.user_id, t.author

FROM group_message t

HWERE group_id = ?

ORDER BY gmt_modified DESC LIMIT 20

   两个查询一比较,打搅就能很明显地看出谁优谁劣了。

2. 由于第一方案中的group_message 表中还包含一个大字段’content’,该字段存放的信息要占整个表的绝大部分存储空间,但在1中表现的最频繁的Query完全不需要该字段所存放的信息,所以,造成了Query读取大量没有任何意义的数据。因此,需要把content字段单独分出来存放在group_message_content帖子内容表中。

作者”邪恶的小Y的博客“ 

bitsCN.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)VirtualBox エラー VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)VirtualBox エラー Mar 24, 2024 am 09:51 AM

VirtualBox でディスク イメージを開こうとすると、ハード ドライブを登録できないことを示すエラーが発生する場合があります。これは通常、開こうとしている VM ディスク イメージ ファイルが別の仮想ディスク イメージ ファイルと同じ UUID を持つ場合に発生します。この場合、VirtualBox はエラー コード VBOX_E_OBJECT_NOT_FOUND(0x80bb0001) を表示します。このエラーが発生した場合でも、心配する必要はありません。試すことができる解決策がいくつかあります。まず、VirtualBox のコマンド ライン ツールを使用して、ディスク イメージ ファイルの UUID を変更してみてください。これにより、競合が回避されます。コマンド「VBoxManageinternal」を実行できます。

機内モードを使用した電話の受信はどの程度効果的ですか? 機内モードを使用した電話の受信はどの程度効果的ですか? Feb 20, 2024 am 10:07 AM

機内モードで電話をかけるとどうなるのですか? 携帯電話は、コミュニケーションツールであるだけでなく、娯楽、学習、仕事などの機能が集約された、人々の生活に欠かせないツールの一つとなっています。携帯電話機能の継続的なアップグレードと改善により、人々の携帯電話への依存度はますます高まっています。機内モードの登場により、人々は飛行中に携帯電話をより便利に使用できるようになりました。しかし、機内モードでの他人の通話が携帯電話やユーザーにどのような影響を与えるのかを心配する人もいます。この記事では、いくつかの側面から分析して議論します。初め

Java のファイル インクルードの脆弱性とその影響 Java のファイル インクルードの脆弱性とその影響 Aug 08, 2023 am 10:30 AM

Java は、さまざまなアプリケーションの開発に使用される一般的なプログラミング言語です。ただし、他のプログラミング言語と同様に、Java にもセキュリティ上の脆弱性とリスクがあります。一般的な脆弱性の 1 つは、ファイル インクルードの脆弱性 (FileInclusionVulnerability) です。この記事では、この脆弱性の原理、影響、および防止方法について説明します。ファイルインクルードの脆弱性とは、プログラム内に他のファイルが動的に導入または組み込まれることを指しますが、導入されたファイルは完全に検証および保護されていないため、

TikTokのコメント機能をオフにする方法は? TikTokのコメント機能をオフにするとどうなりますか? TikTokのコメント機能をオフにする方法は? TikTokのコメント機能をオフにするとどうなりますか? Mar 23, 2024 pm 06:20 PM

Douyin プラットフォームでは、ユーザーは自分の人生の瞬間を共有するだけでなく、他のユーザーと交流することもできます。コメント機能は、オンラインでの暴力や悪意のあるコメントなど、不快な経験を引き起こす可能性があります。では、TikTokのコメント機能をオフにするにはどうすればよいでしょうか? 1.Douyinのコメント機能をオフにする方法は? 1. Douyin APPにログインし、個人のホームページに入ります。 2. 右下隅の「I」をクリックして設定メニューに入ります。 3. 設定メニューで、「プライバシー設定」を見つけます。 4. [プライバシー設定] をクリックして、プライバシー設定インターフェイスに入ります。 5. プライバシー設定インターフェイスで、「コメント設定」を見つけます。 6. 「コメント設定」をクリックして、コメント設定インターフェースに入ります。 7. コメント設定インターフェイスで、「コメントを閉じる」オプションを見つけます。 8. [コメントを閉じる] オプションをクリックして、コメントを閉じることを確認します。

データ不足がモデルトレーニングに及ぼす影響 データ不足がモデルトレーニングに及ぼす影響 Oct 08, 2023 pm 06:17 PM

データ不足がモデル トレーニングに与える影響には、特定のコード サンプルが必要です。機械学習と人工知能の分野では、データはモデルをトレーニングするための中核要素の 1 つです。しかし、実際に私たちがよく直面する問題はデータ不足です。データ不足とは、トレーニング データの量が不足していること、またはアノテーション付きデータが不足していることを指し、この場合、モデルのトレーニングに一定の影響を及ぼします。データ不足の問題は、主に次の側面に反映されます。 過学習: トレーニング データの量が不十分な場合、モデルは過学習する傾向があります。過学習とは、モデルがトレーニング データに過剰に適応することを指します。

ハードドライブ上の不良セクタはどのような問題を引き起こしますか? ハードドライブ上の不良セクタはどのような問題を引き起こしますか? Feb 18, 2024 am 10:07 AM

ハードディスク上の不良セクタとは、ハードディスクの物理的な障害、つまりハードディスク上の記憶装置がデータを正常に読み書きできないことを指します。ハードドライブ上の不良セクタの影響は非常に大きく、データ損失、システムクラッシュ、ハードドライブパフォーマンスの低下につながる可能性があります。この記事では、ハードドライブの不良セクタの影響と関連する解決策について詳しく紹介します。まず、ハードドライブ上の不良セクタはデータ損失につながる可能性があります。ハードディスクのセクタに不良セクタがあると、そのセクタ上のデータを読み取ることができなくなり、ファイルが破損したりアクセスできなくなったりします。この状況は、不良セクタが存在するセクタに重要なファイルが保存されている場合に特に深刻です。

地雷カードはゲームに具体的にどのような影響を与えますか? 地雷カードはゲームに具体的にどのような影響を与えますか? Jan 03, 2024 am 09:05 AM

安さを求めてマイニング カードの購入を検討するユーザーもいるかもしれません。結局のところ、これらのカードは一流のグラフィックス カードです。しかし、一部のゲーマーは、マイニング カードがゲームのプレイに与える影響を心配しています。以下の詳細な紹介を見てみましょう。 。マイニング カードを使用してゲームをプレイする効果は次のとおりです。 1. マイニング カードの寿命は非常に短く、プレイしただけで役に立たなくなる可能性があるため、マイニング カードを使用してゲームをプレイする際の安定性は保証できません。 2. マイニング カードは基本的にオリジナル バージョンの去勢バージョンであり、長期にわたる磨耗により、あらゆる面でパフォーマンスが低下する可能性があります。 3. このように、ユーザーはゲームをプレイするときにゲームの効果をすべて表示できない場合があります。 4. さらに、グラフィックス カードの電子コンポーネントは事前に老化します。ゲームをプレイすることによってグラフィックス カードも消費されるため、消耗が大きくなり、ゲームへの影響が大きくなります。 5. 一般に、ゲームをプレイするにはマイニング カードを使用します。

グラフィックス カードの構成が低いとどのような影響がありますか? グラフィックス カードの構成が低いとどのような影響がありますか? Feb 15, 2024 pm 03:27 PM

基本的に、コンピュータの動作品質はグラフィック カードに大きな影響を与えます。一部のユーザーはグラフィック カードについてあまり詳しくなく、グラフィック カードがコンピュータのどのような側面に影響を与えるかを正確に知りません。参考までに、ここを参照してください。知っておくべきこと: グラフィックス カードの構成が低い場合の影響をいくつか紹介しましょう。グラフィックス カードの構成が低いとどのような影響がありますか? 回答: 1. 一部の大規模な 3D ゲームは実行できません。 2. 一部の高解像度ビデオを再生すると、コンピューターに大きな負荷がかかります。 3. 一部のより専門的なソフトウェアでは、描画や 3D モデルのレンダリングが必要な場合に適切に実行する方法がありません。 4. グラフィックス カードの構成が低い場合、ゲームを開けないか、頻繁にクラッシュまたはフリーズし、コンピュータの画面がぼやけたり、ブルー スクリーンになったりします。 5. ゲームで最も重要なのはグラフィック カードです。多くの画像にはグラフィック カードが必要です。

See all articles