日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時(shí)間:2023/12/19 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

需求概述

一個(gè)簡單的討論區(qū)系統(tǒng),需要有用戶,用戶組,組討論區(qū)這三部分基本功能

簡要分析

1) 須要存放用戶數(shù)據(jù)的表;

2) 須要存放分組信息和用戶與組關(guān)系的表;

3) 須要存放討論信息的表

?

解決方案

原始方案一:

分別用4個(gè)表來存放用戶,用戶組,用戶與組關(guān)系,以及各組的討論帖子的信息。

user用戶表

Field

Type

Null

Key

Default

Extra

id

int11

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

int11

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關(guān)系表

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

?

?

?

?

?

?

?

?

?

?

優(yōu)化后方案二如下

user用戶表分成user用戶表與user_profile

group_message討論組表分成group_message討論組與group_message_content

user用戶表

Field

Type

Null

Key

Default

Extra

id

int11

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

int11

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帖子內(nèi)容表

Field

Type

Null

Key

Default

Extra

group_msg_id

int11

NO

?

?

content

text

NO

?

NULL

?

?

分析考慮:

1.?從實(shí)際出發(fā),一個(gè)討論區(qū)系統(tǒng),訪問最多的頁面應(yīng)該是帖子標(biāo)題列表頁面。而帖子標(biāo)題列表頁面最主要的信息都來自于group_message表中,同時(shí)帖子標(biāo)題后面的作者一般都是通過用戶名(昵稱)來展示。因此:

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

?? 兩個(gè)查詢一比較,打攪就能很明顯地看出誰優(yōu)誰劣了。

2.?由于第一方案中的group_message 表中還包含一個(gè)大字段’content’,該字段存放的信息要占整個(gè)表的絕大部分存儲(chǔ)空間,但在1中表現(xiàn)的最頻繁的Query完全不需要該字段所存放的信息,所以,造成了Query讀取大量沒有任何意義的數(shù)據(jù)。因此,需要把content字段單獨(dú)分出來存放在group_message_content帖子內(nèi)容表中。

轉(zhuǎn)載于:https://my.oschina.net/stream/blog/31997

總結(jié)

以上是生活随笔為你收集整理的MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。