MYSQL性能调优及架构设计-影响MYSQL性能的相关因素之实例分析_MySQL
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
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
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
Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Apabila cuba membuka imej cakera dalam VirtualBox, anda mungkin menghadapi ralat yang menunjukkan bahawa cakera keras tidak boleh didaftarkan. Ini biasanya berlaku apabila fail imej cakera VM yang anda cuba buka mempunyai UUID yang sama seperti fail imej cakera maya yang lain. Dalam kes ini, VirtualBox memaparkan kod ralat VBOX_E_OBJECT_NOT_FOUND(0x80bb0001). Jika anda menghadapi ralat ini, jangan risau, terdapat beberapa penyelesaian yang boleh anda cuba. Mula-mula, anda boleh cuba menggunakan alat baris arahan VirtualBox untuk menukar UUID fail imej cakera, yang akan mengelakkan konflik. Anda boleh menjalankan arahan `VBoxManageinternal

Apa yang berlaku apabila seseorang menelefon dalam mod pesawat? Telefon bimbit telah menjadi salah satu alat yang sangat diperlukan dalam kehidupan orang ramai, ia bukan sahaja alat komunikasi, tetapi juga koleksi hiburan, pembelajaran, kerja dan fungsi lain. Dengan peningkatan berterusan dan penambahbaikan fungsi telefon mudah alih, orang ramai menjadi semakin bergantung kepada telefon mudah alih. Dengan kemunculan mod kapal terbang, orang ramai boleh menggunakan telefon mereka dengan lebih mudah semasa penerbangan. Walau bagaimanapun, sesetengah orang bimbang tentang kesan panggilan orang lain dalam mod kapal terbang pada telefon mudah alih atau pengguna? Artikel ini akan menganalisis dan membincangkan dari beberapa aspek. pertama

Di platform Douyin, pengguna bukan sahaja boleh berkongsi detik hidup mereka, tetapi juga berinteraksi dengan pengguna lain. Kadangkala fungsi ulasan boleh menyebabkan beberapa pengalaman yang tidak menyenangkan, seperti keganasan dalam talian, komen berniat jahat, dsb. Jadi, bagaimana untuk mematikan fungsi ulasan TikTok? 1. Bagaimana untuk mematikan fungsi komen Douyin? 1. Log masuk ke APP Douyin dan masukkan halaman utama peribadi anda. 2. Klik "I" di penjuru kanan sebelah bawah untuk memasuki menu tetapan. 3. Dalam menu tetapan, cari "Tetapan Privasi". 4. Klik "Tetapan Privasi" untuk memasuki antara muka tetapan privasi. 5. Dalam antara muka tetapan privasi, cari "Tetapan Komen". 6. Klik "Tetapan Komen" untuk memasuki antara muka tetapan ulasan. 7. Dalam antara muka tetapan ulasan, cari pilihan "Tutup Komen". 8. Klik pilihan "Tutup Komen" untuk mengesahkan ulasan penutup

Java ialah bahasa pengaturcaraan yang biasa digunakan untuk membangunkan pelbagai aplikasi. Walau bagaimanapun, sama seperti bahasa pengaturcaraan lain, Java mempunyai kelemahan dan risiko keselamatan. Salah satu kelemahan yang biasa ialah kerentanan kemasukan fail (FileInclusionVulnerability) Artikel ini akan meneroka prinsip, kesan dan cara mencegah kerentanan ini. Kerentanan kemasukan fail merujuk kepada pengenalan dinamik atau kemasukan fail lain dalam program, tetapi fail yang diperkenalkan tidak disahkan dan dilindungi sepenuhnya, oleh itu

Kesan kekurangan data pada latihan model memerlukan contoh kod khusus Dalam bidang pembelajaran mesin dan kecerdasan buatan, data ialah salah satu elemen teras untuk model latihan. Walau bagaimanapun, masalah yang sering kita hadapi dalam realiti adalah kekurangan data. Kekurangan data merujuk kepada jumlah data latihan yang tidak mencukupi atau kekurangan data beranotasi Dalam kes ini, ia akan memberi kesan tertentu pada latihan model. Masalah kekurangan data terutamanya dicerminkan dalam aspek-aspek berikut: Overfitting: Apabila jumlah data latihan tidak mencukupi, model terdedah kepada overfitting. Overfitting merujuk kepada model yang terlalu menyesuaikan diri dengan data latihan.

Sektor buruk pada cakera keras merujuk kepada kegagalan fizikal cakera keras, iaitu, unit storan pada cakera keras tidak boleh membaca atau menulis data secara normal. Kesan sektor buruk pada cakera keras adalah sangat ketara, dan ia boleh menyebabkan kehilangan data, ranap sistem dan prestasi cakera keras yang berkurangan. Artikel ini akan memperkenalkan secara terperinci kesan sektor buruk cakera keras dan penyelesaian yang berkaitan. Pertama, sektor buruk pada cakera keras boleh menyebabkan kehilangan data. Apabila sektor dalam cakera keras mempunyai sektor buruk, data pada sektor itu tidak boleh dibaca, mengakibatkan kerosakan fail atau tidak boleh diakses. Keadaan ini amat serius jika fail penting disimpan dalam sektor di mana sektor buruk berada.

Sesetengah pengguna mungkin mempertimbangkan untuk membeli kad perlombongan demi harga yang murah. Apakah kesan penggunaan kad mining untuk bermain permainan: 1. Kestabilan bermain permainan dengan kad mining tidak dapat dijamin, kerana hayat kad mining adalah sangat singkat dan berkemungkinan menjadi tidak berguna selepas bermain sahaja. 2. Kad perlombongan pada asasnya adalah versi yang dikebiri daripada versi asal Disebabkan haus dan lusuh jangka panjang, prestasi dalam semua aspek mungkin lemah. 3. Dengan cara ini, pengguna mungkin tidak dapat memaparkan semua kesan permainan semasa bermain permainan. 4. Lebih-lebih lagi, komponen elektronik kad grafik akan menua lebih awal, apatah lagi bermain permainan juga memakan kad grafik, jadi ia telah dikeringkan ke tahap yang lebih besar, jadi impak kepada permainan adalah hebat. 5. Secara umumnya, gunakan kad mining untuk bermain permainan

Kualiti berjalan komputer pada asasnya mempunyai kesan yang besar pada kad grafiknya Sesetengah pengguna tidak tahu banyak tentang kad grafik, dan mereka tidak tahu dengan tepat aspek komputer yang akan dipengaruhi oleh kad grafik adalah Mari perkenalkan beberapa kesan konfigurasi kad grafik rendah. Apakah kesan konfigurasi kad grafik rendah Jawapan: 1. Beberapa permainan 3D berskala besar tidak boleh dijalankan. 2. Apabila memainkan beberapa video definisi tinggi, komputer akan berada di bawah tekanan yang hebat. 3. Untuk beberapa perisian yang lebih profesional, tiada cara untuk menjalankannya dengan baik apabila lukisan dan pemaparan model 3D diperlukan. 4. Jika konfigurasi kad grafik rendah, permainan tidak akan dapat dibuka, atau ia akan kerap ranap atau beku, dan komputer juga akan mempunyai skrin kabur atau skrin biru. 5. Perkara yang paling penting dalam permainan adalah kad grafik, kerana banyak gambar memerlukan
