Salam. PHP-də Mysql sorğularını optimallaşdırmaq üçün digər mysql istifadə edənlərin fikirlərini bilmək istərdim.
1. 3 dəfə iç-içə menunu (submenu) bir dəfəyə bazadan necə çıxarmaq yaxşı olar?
2. axtarışı sətir tipli dəyişənlə ya və id ilə etməkdə çox sürrət fərqi var? məsələn: where ad=’Anar’ və ya where id=1
3. bir neçə sorğunu bir dəfəyə gödərmək üçün ən yaxşı üsul hansıdı?
Verilmiş cavablar və yazılan şərhlər (3 cavab var)
4
Salam.
1. Yaxşı olar ki bütün menyunu bir php massivə mənimsədib o massivə rekurent php funksiya tətbiq edəsiniz(rekursiya- funksiyanın öz daxilində özünə müraciət etməsi). Bu halda mysql-ə müraciət cəmi bir dəfə olmuş olur və php-də rekurentlik hesabına nəinki 2,3 eləcə də istənilən tərtibdən alt menyu düzəltmək asan olur. Məsələn 15 item var, hərəsinin də 10 sub itemi, onların da hərəsinin 5 sub-sub-itemi. PHP ilə 750 sadə əməliyyat menyunu hazır edəcək, bu isə server üçün heç nə kimi bir şeydir. Amma mysql-dən oxuyaraq quranda isə, bazaya 150 müraciət gedəcək ki bu isə bir process üçün hədsiz pis göstəricidir.
Bir də ki yaxşı olar ki ağır menyunu cache edəsiniz. Menyu generate oldumu, onu saxlayın html-də filanda, elə qurun ki menyuda nəsə dəyişiklik olsa, update olsun o html. Vəssalam.
2. Əlbəttə fərq edir. Bir var lazımi evi çoxsaylı evlərin qapılarının nömrəsi ilə axtarasan, bir də var hər evin içinə girib evi tam axtarıb çıxasan ta ki lazımi evi tapanadək.
3. Bu bir az aydın deyil. sorğular onsuz da ardıcıl növbə ilə icra olur bir prosesin içində olduqda. Yan-yana da yazsaz bir query-də, və ya hər birini ayrı query kimi yazsaz ciddi fərq edəcəyini sanmıram.
0
1ci və 3cü aydın oldu.
2. bəs bəzi saytlarda linklərdə ancaq yazılı məlumat olur, fb, wp bu kimi sistemlər necə işləyir linki təyin etmək üçn?
Məsələn fb-da bütün linklər bu formada olur facebook.com/link-adresi . Bunu necə təyin edirlər ki bu profildi ya səhifədi ya da fb daxili səhifədi?
0
wp stringləri müqayisə edir bayaqkı misaldakı kimi, id yoxdursa tək yol odur, başqa nə etsin ki. wp saytlar isə əsasən kiçik olduğundan (yəni bir milyard useri yoxdur) bu problem olmur, sayt böyüsə və problem olsa o halda əlavə optimizə işləri gərəkər.
fb zad isə biz bildiyimiz simple mysql-php ilə işləmir axı. lap id ilə olsaydı belə hər user-ə müraciətdə 1.3 milyardlıq bazadan search edib useri çıxarsa serverlərinin hamsı çökər 🙂
Məsələn tutalım userin adı Steve-dirsə və hər hansı sql partition ilə ste adı ilə başlayan userlərin partitionu üzrə axtarış getsə, seçim 1.3 milyard yox, 100min filan içindən olar ki yüklənmə min dəfələrlə aşağı düşər. fb belə işləyir demirəm ha, sadəcə ümumi bir nümunə gətirdim, ki böyük informasiya olanda optimizə işləri işə düşür, əks halda 1000 dəfələrlə çox resurs tələb olunar.
fb-ya gəldikdə isə onların bazası NOSQL ilədir, o isə məhz elə yekə bazalar üçün yaxşı həllərə malikdir
Sual verin
Cavab verin