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

Двигател за съхранение на Mysql за таблица с регистрационни файлове

Е, според вашия въпрос InnoDB трябва да свърши работата, защото:

  1. Мащабируемостта му е много по-добра от MyISAM
  2. Това е заключване на редове, следователно, ако ще имате повече записвания, отколкото избирания, ще пасва по-добре.
  3. Накрая, тъй като казахте, че те ще бъдат рядко достъпни, няма нужда от MyISAM, тъй като е по-добър при избрани заявки.

Проверете това за повече информация

РЕДАКТИРАНЕ

Ами в коментара питаш за други двигатели. Ето пълен списък на двигатели. Сред тях, както казахте, архивът има недостатък, другите не отговарят на вашата заявка. Ето цитат от уебсайта на MySQL:

InnoDB has been designed for maximum performance when processing large data volumes. 
Its CPU efficiency is probably not matched by any other disk-based relational database
engine.

Така че основно:

  1. Ако ще използвате MEMORY, не правете както казахте, няма да имате достъп до данни много и таблицата ви ще нарасне твърде много. Ще ви трябва много RAM за това и когато рестартирате всички данни ще бъдат загубени.
  2. Ако ще използвате MyISAM, не го правете, тъй като е предназначен за таблици, които избират заявки са по-чести от вмъкването и актуализирането.
  3. Що се отнася до архива, това е ваш избор. Тук е сравнение между MyISAM и архив за таблица с регистрационни файлове. Все пак бих се придържал към InnoDB.
  4. Няма да споменавам дори Merge, Blackhole, Example и други двигатели. (Нямам много познания относно CSV двигателя, но доколкото прочетох, това не е подходящ двигател за този вид таблици.

Честно казано, прекарвах много време, преди да направя важен ход в кодирането. Проучвах с часове, може би с дни за даден проблем, за да видя кой начин е най-подходящият. Ще ви кажа какво, проучването е добро, но след един момент, ако ви пречи да работите, трябва да спрете, да изпиете едно кафе и да направите своя избор веднага. Затова просто опитайте най-подходящия за вас и както ще опитате, ще намерите още по-добър начин, като опитате сами. Искам да кажа, не вярвам, че Facebook е създаден за такъв обем, но с нарастването му те продължиха да променят съответно структурата. Въпреки това вярвам, че може да не е реалността :) Както и да е, надявам се тази информация да ви помогне.

РЕДАКТИРАНЕ 2013

По-долу ще намерите кратки описания за вградените MySQL машини за съхранение.

MyISAM

Тези таблици включват допълнителни оптимизации, като разширен кеш и механизми за индексиране, които осигуряват бърз достъп до данни. Използвайки заключване на ниво таблица, механизмът за съхранение на MyISAM осигурява едновременни операции. Когато производителността на четене е проблем, като цяло MyISAM е изборът.

Памет

Наричани още heap таблици, таблиците с памет са идеални за бързо извличане на често използвани данни, които рядко се променят (като кодове на държави, пощенски кодове или други справочни таблици). Както подсказва името, данните се съхраняват в паметта и следователно достъпът е много по-бърз от данните, съхранявани на дискове. Едно значително ограничение за използване на паметта е, че данните са валидни по време на сесията на MySQL. Когато се срине или изключи, данните се губят.

InnoDB

Един случай, в който ще трябва да използвате тази машина за съхранение, е когато трябва да използвате чужди ключове или транзакции. InnoDB е по-конкурентен от MyISAM, тъй като осигурява заключване на ниво ред. Двигателят за съхранение е много надежден. Друг случай, когато ще искате да използвате това хранилище, е когато имате повече записвания, отколкото четения. Когато често записвате данни в таблицата, опитайте да използвате това хранилище, тъй като то е по-едновременно от MyISAM.

Архив

Той е предназначен за съхранение на големи количества данни в компресиран формат. Един от случаите на използване на този механизъм за съхранение е да съхранява архивни или исторически данни или регистрационни файлове за сигурност. Таблицата не използва индекси, така че за ежедневно извличане и съхранение на данни не е добър избор. Това е заключване на ниво ред и данните се некомпресират в движение, когато се изискват. Освен това промяната на таблицата не е възможна.

Обединяване

Обединяването се използва за „сливане“ на разделени таблици, които се намират на една и съща машина. Когато разделите голяма таблица на няколко по-малки таблици и осъществите достъп до тях едновременно с помощта на таблица за сливане, най-голямото предимство е нейната скорост. Търсенията и сортирането ще се изпълняват по-бързо, тъй като има по-малко данни в таблиците.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Можем ли да изпълняваме SQL заявки в JQuery

  2. Laravel:Как да използвате множество релации на централна таблица

  3. Грешка на комуникационната връзка - последният успешно получен от сървъра пакет беше

  4. имплементирайте LIKE заявка в PDO

  5. Как да получите достъп до отдалечен сървър с локален клиент phpMyAdmin?