sql >> Databáze >  >> RDS >> Mysql

Velký počet sloupců v databázi MySQL

Dobře, chápu vaše dialema a při (pravděpodobně krátkodobé) nepřítomnosti odborníka na databáze vám řeknu svůj názor.

V zájmu zdravého rozumu rozbijte svá data. Řekněme, že ukládáte informace o lidech. Nepotřebujete 200 sloupců v 1 tabulce. Měli byste je rozdělit a mít více sloupců v mnoha tabulkách. např.

tblGeneralCharacteristics:
 - colEyeColor
 - colHairColor
 - colHeight
 - colWeight

tblInterests:
 - colFaveColor
 - colFaveSport

tblRelationships
 - colMother
 - colFather
 - colBrother
 - colSister

Tento způsob je mnohem lepší. Výpočtově pochybuji, že na tom moc záleží. Je zřejmé, že s každým dotazem získáváte zpět méně dat, takže u některých přehledů (kde možná nebudete potřebovat získat všechna data nebo procházet všechna data) to může být rychlejší (ačkoli pokud databázi správně indexujete, nemělo by to nebude problém).

K dalšímu vydání. To o množství záznamů v databázi. Pokud 10 000 začíná být trochu velké, je čas začít ukládat do mezipaměti.

Nyní, pokud jde o mě, neexistuje žádný správný nebo špatný způsob ukládání dat do mezipaměti. Co potřebujete, je to, co potřebujete. Takže například ve své otázce jste zmínil získání průměrných výšek hmotnosti pro záznamy zadané mezi lednem a březnem 2012. No... můžete napsat cron skript, který vypočítá průměrné výšky hmotnosti pro všechny záznamy zadané v daném měsíci a uloží to někde v jiné tabulce. Když potom vytvoříte svůj přehled, stačí získat hodnoty za leden, únor a březen a zprůměrovat je... je to mnohem jednodušší. Namísto provádění výpočtového dotazu na potenciálně tisících řádků provádíte cronový dotaz (nezáleží na tom, jak dlouho to trvá) na několika stovkách řádků a skutečná sestava se pak dotazuje pouze na 3 řádky.

Dalším trikem je, že čím více výpočtů můžete v SQL provést, tím lépe. Pokud chcete zprůměrovat pole/záznamy nebo něco sečíst, odešlete to se svým dotazem SQL. SQL server provede výpočet a vrátí výsledek, místo aby vám vrátil obrovské množství dat k prosévání. Vím, že to není vždy snadné/užitečné, ale čím více dokážete SQL udělat, tím lépe.

Snad to pomůže. Jak jsem řekl, jsem si jistý, že odborník na databáze by vám rád dal více zasvěcených rad. :)



  1. Jak přejmenovat název sloupce v SQL?

  2. subsonic 2 spojení na více sloupcích

  3. Jak najít odpovídající časové intervaly pro více než 2 uživatele

  4. Mazání záznamů před určitým datem