Skip to forum content
PHP ir MySQL
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
Active topics Unanswered topics
Search options
erelis4 wrote:Dabar patvarkiau kraunasi tik uztrunka apie 0.46 sekundes tai jauciu l.daug
explainas
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a range PRIMARY,laikas laikas 16 NULL 595 Using where; Using temporary; Using filesort
1 SIMPLE d ref imonesid imonesid 4 db.a.antros_id 1 Using where
1 SIMPLE b ref imonesid imonesid 4 db.a.id 1
1 SIMPLE c ref imonesid imonesid 4 db.a.pirmos_id 1 Using where
is select_type (SIMPLE) iskart aisku, kad daromas visu lenteliu full table scan, todel ir uztrunka lb ilgai.
jungimai inner ar outer? keista kad optimizatorius pats nesutvarko jej innerai. reikia ziuret pacia uzklausa, pirmiausia isnaudot pirminius raktus jungiant lenteles, jei tai neimanoma kurti indeksus
is esmes ziurima ar stulpelis yra indeksuotas, jei taip ir yra keletas galimu panaudoti indeksu, naudojamas tas, kuris yra unikaliausias. (cardinality reiksme). O jei indeksu nera- praktiskai niekas rimciau ir neoptimizuojama mysql'e - daromas full scan.
myisam yra greitesnis varikliukas, bet nepalaiko tranzakciju ir isoriniu raktu (foreign key). innodb palaiko tranzakcijas, yra patikimesnis duomenu praradimo atzvilgiu.
del duomenu trynimo is susietos kitos lenteles - jej tau reikia tai padaryti teks naudoti foreign key, tai automatiskai teks rinktis innodb
be to mysql'e negalima naudoti agregatiniu funkciju (min, max, avg...) from lauke
is tikruju jei nori tokiu paciu rezultatu, vietoj LEFT join turetu but inner join.
o sios uzklausos yra analogiskos, tik kitaip uzrasytos - viena pagal explicit join notation sintakse, kita pagal implicit.
Posts found: 5