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

Много таблици или редове, коя е по-ефективна в SQL?

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

  • Индекси на произволна комбинация от полета за ускоряване на търсенето
  • Кеширане на страници, така че често използваните страници остават в паметта
  • Вертикално разделяне (колонни бази данни) за допълнителна скорост на заявките
  • Разширени алгоритми като хеш обединения и групови bys (поне в бази данни, различни от MySQL)
  • Използване на множество процесори и дискове за обработка на заявки

Има едно нещо, което е по-трудно при поставянето на данни в една таблица и това е сигурността. И всъщност при някои обстоятелства това е основна грижа и по същество изисква данните да се поставят в отделна таблица. Тези приложения са рядкост.

За да дадете пример за това колко лошо може да бъде съхраняването на данни в множество таблици, представете си, че във вашата система имате един запис на компания и го съхранявате в таблица. Този запис съхранява информация за компанията - нещо като име, адрес, каквото и да е. Обаждането е 100 байта информация.

Във вашата схема има отделна таблица за всяка "компания", така че това е един ред на таблица. Този запис ще се намира на една страница с данни. Една страница с данни може да бъде 16 kbytes, така че губите около 15,9 kbytes, за да съхранявате тези данни. Съхраняването на 1000 такива записи заема 16 мегабайта вместо около 7 страници на стойност (112 кбайта). Това може да бъде значителен удар в производителността.

Освен това с множество таблици вие не вземате предвид предизвикателствата при поддържането на всички таблици и осигуряването на коректността на данните в различните таблици. Актуализациите за поддръжка трябва да се прилагат към хиляди таблици, вместо към шепа.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Binary Storage, използвайки BLOB VS OS файлова система:големи файлове, големи количества, големи проблеми

  2. Синтаксис на SQL DROP TABLE – Изброен от СУБД

  3. Възстановете MySQL DB с Unicode знаци (арабски и кюрдски) във формат .gz

  4. съхранявайте numpy масив в mysql

  5. MySQL Group By и Order By