首頁 資料庫 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 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)

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也存在安全漏洞和風險。其中一個常見的漏洞是檔案包含漏洞(FileInclusionVulnerability),本文將探討檔案包含漏洞的原則、影響以及如何防範這種漏洞。文件包含漏洞是指在程式中透過動態引入或包含其他文件的方式,但卻沒有對引入的文件做充分的驗證和防護,從

如何關閉抖音評論功能?關閉抖音評論功能後會怎麼樣? 如何關閉抖音評論功能?關閉抖音評論功能後會怎麼樣? Mar 23, 2024 pm 06:20 PM

在抖音平台上,使用者不僅可以分享自己的生活點滴,還可以與其他使用者互動交流。有時候評論功能可能會引發一些不愉快的經歷,如網路暴力、惡意評論等。那麼,如何關閉抖音評論功能呢?一、如何關閉抖音評論功能? 1.登入抖音APP,進入個人首頁。 2.點選右下角的“我”,進入設定選單。 3.在設定選單中,找到「隱私設定」。 4.點選“隱私設定”,進入隱私設定介面。 5.在隱私設定介面,找到「評論設定」。 6.點選“評論設定”,進入評論設定介面。 7.在評論設定介面,找到「關閉評論」選項。 8.點選「關閉評論」選項,確認關閉評論

資料稀缺對模型訓練的影響問題 資料稀缺對模型訓練的影響問題 Oct 08, 2023 pm 06:17 PM

資料稀缺對模型訓練的影響問題,需要具體程式碼範例在機器學習和人工智慧領域,而資料是訓練模型的核心要素之一。然而,現實中我們經常面臨的一個問題是資料稀缺。資料稀缺指的是訓練資料的量不足或標註資料的缺乏,這種情況下會對模型訓練產生一定的影響。資料稀缺的問題主要體現在以下幾個方面:過度擬合:當訓練資料量不夠時,模型很容易出現過擬合的現象。過擬合是指模型過度適應訓練數據,

硬碟壞道會導致什麼問題 硬碟壞道會導致什麼問題 Feb 18, 2024 am 10:07 AM

硬盘坏道是指硬盘的物理故障,即硬盘上的储存单元无法正常读取或写入数据。坏道对硬盘的影响是非常显著的,它可能导致数据丢失、系统崩溃和硬盘性能下降等问题。本文将会详细介绍硬盘坏道的影响及相关解决方法。首先,硬盘坏道可能导致数据丢失。当硬盘中的某个扇区出现坏道时,该扇区上的数据将无法读取,从而导致文件损坏或无法访问。这种情况尤其严重,如果坏道所在的扇区中存储了重要

機殼漏電對電腦有什麼影響 機殼漏電對電腦有什麼影響 Feb 22, 2024 pm 06:48 PM

機箱漏電對電腦有什麼影響隨著科技的不斷進步,電腦已漸漸成為人們生活中不可或缺的工具,無論是工作、學習或娛樂,都離不開電腦的使用。然而,就在我們享受電腦帶來便利的同時,我們也需要注意它的安全性。機箱漏電是一種潛在的問題,如果不及時處理,可能會對電腦和使用者產生嚴重的影響。首先,機箱漏電會對電腦硬體造成損害。電腦的主機板、電源、內部線路等零件都在機殼內,一旦機殼

礦卡對遊戲有什麼具體的影響? 礦卡對遊戲有什麼具體的影響? Jan 03, 2024 am 09:05 AM

為了圖便宜可能有些用戶會考慮入手礦卡,這些卡畢竟是頂級的顯示卡,但是也有部分遊戲玩家很擔心礦卡打遊戲有什麼影響,下面就看看具體的介紹吧。礦卡打遊戲有什麼影響:1.礦卡打遊戲沒辦法保證穩定性,因為礦卡的壽命很短很可能玩玩就廢了。 2.礦卡基本上等於原版的閹割版,由於長期的損耗,各方面性能可能都弱了。 3.這樣用戶在玩遊戲的時候可能就不能將遊戲的效果全部展示了。 4.而且顯示卡的電子元件都會提前的老化,更何況打遊戲也很消耗顯示卡,因此等於更大程度上的來將其榨乾,因此對遊戲的影響是很大的。 5.總的來說,使用礦卡打遊

See all articles