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

Колко голяма е твърде голяма за MySQL таблица?

Няма страхотно общо решение на въпроса „Колко голям е твърде голям“ – подобни опасения често зависят от това какво правите с данните си и какви са съображенията ви за ефективност.

Има някои основни ограничения за размерите на масата. Не можете да имате повече от 1000 колони. Вашите записи не могат да бъдат по-големи от 8k всеки. Тези ограничения се променят в зависимост от двигателя на базата данни. (Тези тук са за InnoDB.)

Изглежда, че сте слели няколко различни набора от данни в една таблица. Вероятно имате някои полета, които ви казват за какъв набор от данни се отнася този запис, заедно с някои полета с данни и информация за времеви печат. Това не е много широк запис (освен ако не регистрирате, да речем, всички входни параметри на всяка заявка.) Основният ви проблем ще бъде с селективността . Индексирането на тази таблица по смислен начин ще бъде предизвикателство. Ако общите ви полета могат да бъдат достатъчно селективни, за да можете да ги използвате, за да стигнете до записите, които искате, без да се консултирате с таблицата, това ще бъде огромен плюс. (Вж. сканиране на таблица)

За толкова много записи на ден (по принцип два в секунда през целия ден и предполагам, че имате период на пиково натоварване, при който е много по-висок), също така ще искате да сте сигурни, че разглеждате специално оптимизации на подобряване на скоростта на вмъкване . Като общо правило, повече индекси =по-бавни вмъквания. Ако можете, помислете за архивиране на остарели записи изцяло в друга таблица. На предишни работни места сме използвали архивна стратегия за последния месец, предходни три месеца, предишни шест месеца, всяка в отделни таблици. Друга идея е да изтриете по-стари записи. Много среди просто не се нуждаят от информация след определена дата. Задържането на записи от преди три месеца често е прекалено скъпо.

И накрая, не пренебрегвайте физическото съхранение на вашата маса. Колкото по-тънки са вашите записи, толкова по-малко физическо IO трябва да се случи, за да прочетете (или по този въпрос, за да вмъкнете) запис. Можете да съхранявате вашите индекси на отделен физически твърд диск. Ако има много излишни данни във вашите записи, съхраняващи компресираната таблица, може всъщност да има увеличение на скоростта. Ако имате малко пари за изгаряне, помислете за стойността на добър RAID масив за разделяне на вашите данни.

И така, за да отговоря на основния ви въпрос:това са много записи, но с внимателен поглед към настройката, няма да е проблем.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не мога да разбера как да стартирам mysqli_multi_query и да използвам резултатите от последната заявка

  2. MySQL дава променлив брой редове, когато заявявам схема?

  3. Изберете от таблица, където полетата не отговарят на условията

  4. MySQL пълнотекстово търсене в множество колони:резултат объркване

  5. как да поправя (2002, Не мога да се свържа с локален MySQL сървър през сокет '/tmp/mysql.sock' (2)) на ec2 bitnami?