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

Лошо ли е за производителността да се изберат всички колони?

Проблемът тук не е толкова в сървъра на базата данни, колкото само в мрежовата комуникация. Избирайки всички колони наведнъж, вие казвате на сървъра да се върне при вас, всички колони наведнъж. Що се отнася до опасенията относно IO и всичко това, те са разгледани добре във въпроса и отговора, който @Karamba даде в коментар:изберете * срещу изберете колона . Но за повечето приложения от реалния свят (а аз използвам „приложения“ във всеки смисъл) основната грижа е само мрежовият трафик и колко време отнема да се сериализират, предават и след това десериализират данните. Въпреки че наистина отговорът е един и същ.

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

Това наистина е просто компромис между гореспоменатия ви мързел (и повярвайте ми, всички се чувстваме така) сега и колко важна е ефективността наистина е.

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

Мислете за това като за търсене в мрежата:търсите, намирате страницата си и имате нужда само от един детайл. Можете да прочетете цялата страница и да знаете всичко по темата или просто да преминете към частта за това, което търсите, и да приключите. Последното е много по-бързо, ако това е всичко, което някога искате, но ако тогава ще трябва да научите за другите аспекти, ще бъде много по-добре да ги прочетете първия път, отколкото да се налага да правите търсенето си отново и да намерите сайта, за да говорим за това.

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

Всичко зависи от това какво е вашето приложение, какви са вашите данни, как ги използвате и колко важна е ефективността наистина е за вас.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на SUM върху FLOAT данни

  2. Недефинирана константа на клас 'MYSQL_ATTR_INIT_COMMAND' в недефинирана константа на клас (PHP 5.5.3)

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

  4. Грешка в заявката на Python/MySQL:„Неизвестна колона“.

  5. Разбиране на дневника за одит на ProxySQL