sql >> Database teknologi >  >> RDS >> Mysql

MYSQL:Bruger - profildetaljer tabelopsætning - bedste praksis

Ting at overveje med dine tilgange

Lagring af brugerprofil i brugertabel

  • Dette vil generelt være den hurtigste tilgang med hensyn til at få adgang til profildataene, selvom du muligvis har en masse overflødige data her (kolonner, der muligvis ikke har nogen information).
  • Hurtig (især hvis du kun trækker de kolonner, du har brug for, fra db)
  • Spildte data
  • Sværere at arbejde med/vedligeholde (formentlig med grænseflader såsom PHPMyAdmin)

Lagring af brugerprofil i User_Profile Tabel 1-1 forhold til brugere

  • Bør stadig være ret hurtig med en deltagelse, og du kan eliminere noget dataredundans, hvis brugerprofiler ikke oprettes, medmindre en bruger udfylder en.
  • Nemmere at arbejde med
  • Altid lidt langsommere på grund af joinforbindelse (eller anden forespørgsel)

Lagring af brugerprofil som egenskaber og værdier i tabeller

*dvs. Tabel til lagring af mulige muligheder, tabel til lagring af bruger-id, option_id og værdi*

  • Ingen redundante data gemt, alle data er relevante
  • Mest normaliserede metode
  • Langsommere at hente og opdatere data

Mit indtryk er, at de fleste websteder bruger den anden metode og gemmer profiloplysninger i en anden tabel, hvilket er almindeligt for de fleste større websteder at denormalisere databasen (twitter, facebook) for at opnå større læseydelse på bekostning af langsommere skriveydeevne.

Jeg vil tro, at det at holde profiloplysningerne i en anden tabel sandsynligvis er vejen at gå, når du ser på 50.000 poster. For at opnå optimal ydeevne ønsker du at holde data, der er skrevet stærkt adskilt fra data, der læses tungt for at sikre, at cachen kan fungere effektivt.



  1. 3 måder at formatere et tal som en procentdel i PostgreSQL

  2. jeg oprettede arrays i PHP 5.6 med [] i PHP 7.1 giver fatal fejl

  3. Summen af ​​flere MySQL-kolonner gemt i en anden kolonne?

  4. Hvordan tilføjer jeg betingelser i underordnede underordnede modeller i efterfølger, som bør påvirke min overordnede model i findAndCountAll?