Mysql
 sql >> база данни >  >> RDS >> Mysql

Голям брой колони в MySQL база данни

Добре, виждам диалемата ви и при (вероятно краткотрайна) липса на експерт по база данни ще ви дам мнението си.

В името на здравия разум разбийте данните си. Да приемем, че съхранявате информация за хора. Нямате нужда от 200 колони в 1 таблица. Трябва да ги разделите и да имате няколко колони в много таблици. напр.

tblGeneralCharacteristics:
 - colEyeColor
 - colHairColor
 - colHeight
 - colWeight

tblInterests:
 - colFaveColor
 - colFaveSport

tblRelationships
 - colMother
 - colFather
 - colBrother
 - colSister

Този начин е много по-добър. Изчислително се съмнявам, че има голямо значение. Очевидно с всяка заявка получавате по-малко данни обратно, така че за някои отчети (където може да не е необходимо да получавате всички данни или да преглеждате всички данни) може да е по-бързо (въпреки че ако индексирате базата данни правилно, тогава не трябва не е проблем).

Към следващия брой. Това на количеството записи в базата данни. Ако 10 000 започват да стават малко големи, време е да започнете кеширането.

Сега, що се отнася до мен, няма правилен или грешен начин за кеширане на данни. Това, от което се нуждаете, е това, от което имате нужда. Така например, във вашия въпрос споменахте получаването на средна височина за тегло за въвеждане на записи между януари и март 2012 г. Е... можете да напишете cron скрипт, който изчислява средните височини за тегло за всички въведени записи през този месец и съхранява това в друга маса някъде. След това, когато дойдете да създадете своя отчет, трябва само да получите стойностите за януари, февруари и март и да ги усредните... това е много по-лесно. Вместо да правите изчислителна заявка за потенциално хиляди редове, вие правите заявка за cron (която няма значение колко време отнема) на няколкостотин реда, а след това действителният отчет прави заявка само за 3 реда.

Друг трик е, колкото повече изчисления можете да направите в SQL, толкова по-добре. Ако искате да осредните полета/записи или да сумирате нещо, изпратете го с вашата SQL заявка. SQL сървърът ще извърши изчислението и ще върне резултата, вместо да ви връща огромни количества данни, за да ги отсеете. Знам, че това не винаги е лесно/полезно, но колкото повече можете да накарате SQL да прави, толкова по-добре.

Надявам се това да помогне. Както казах, сигурен съм, че експерт по база данни иска да ви даде някои по-проницателни съвети. :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django admin MySQL бавно INNER JOIN

  2. MySQL NOW() функция с висока точност

  3. ГРЕШКА В MySQL 1005 (HY000):Не може да се създаде таблица 'foo.#sql-12c_4' (errno:150)

  4. mySQL DataSource на Visual Studio 2012

  5. php Mysql Групиране и подреждане на потребителски съобщения заедно