Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: LinuxFanUNIX в Jan 08, 2013, 00:32



Титла: MYSQL {Кое товари повече?}
Публикувано от: LinuxFanUNIX в Jan 08, 2013, 00:32
Кое товари повече сървъра:
Код
GeSHi (SQL):
  1. SELECT id,username,pass FROM users LIMIT 0,10
  2.  
или

Код
GeSHi (SQL):
  1. SELECT id,username,pass FROM users WHERE id=1
  2. SELECT id,username,pass FROM users WHERE id=2
  3. SELECT id,username,pass FROM users WHERE id=3
  4. SELECT id,username,pass FROM users WHERE id=4
  5. SELECT id,username,pass FROM users WHERE id=5
  6. SELECT id,username,pass FROM users WHERE id=6
  7. SELECT id,username,pass FROM users WHERE id=7
  8. SELECT id,username,pass FROM users WHERE id=8
  9. SELECT id,username,pass FROM users WHERE id=9
  10. SELECT id,username,pass FROM users WHERE id=10
  11.  
Двете се изпълняват от PHP скрипт


Титла: Re: MYSQL {Кое товари повече?}
Публикувано от: n00b в Jan 08, 2013, 01:03
Първото

А защо е така може да видиш сам тук http://use-the-index-luke.com/ ($2)


Титла: Re: MYSQL {Кое товари повече?}
Публикувано от: senser в Jan 08, 2013, 09:05
Първото

А защо е така може да видиш сам тук http://use-the-index-luke.com/ ($2)

Аз не съм убеден обаче, най-вече заради това, че в първия селект липсва conditional statement.
Допускам, че id e primary key, т.е. има сетнат индекс на тази колона.


Титла: Re: MYSQL {Кое товари повече?}
Публикувано от: n00b в Jan 08, 2013, 13:44
Засега да - проблема е когато данните нарастнат и станат стотици хиляди.

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


Титла: Re: MYSQL {Кое товари повече?}
Публикувано от: jet в Jan 08, 2013, 16:27
2 товари повече - разкарваш заявки напред-назад между уеб сървъра/ пхп интерпретатора / БД

при първата - се изпълнява на един пас от край докрай и си прави вътрешни оптимизации. За малки бази, индексите дори нямат значение