Yangi formatda davom etish uchun: https://uzfor.net/10228-mysql-dan-foydalanishni-optimallashtirish.html?act=fayl&id=10228
MySQL-dan foydalanishni optimallashtirish
Mavzu fayllari (5)
Xabarlar
Bu mavzuda MySQL dan foydalanishda bazani optimallashtirish haqida fikr almashamiz.
MySQL optimallashtirish sodda qilib aytganda bazadan unumli foydalanish va iloji boricha bazadan "to'g'ri" buyuq bilan ma'lumot so'rash.
Oddiy misol:
MySQL optimallashtirish sodda qilib aytganda bazadan unumli foydalanish va iloji boricha bazadan "to'g'ri" buyuq bilan ma'lumot so'rash.
Oddiy misol:
// Xorazm dan bazaga yozilgan foydaluvchilar bormi? // Bu noto'g'ri buyruq (so'rov): // ... kodlaringiz } // Bu yaxshi usul: // ... kodlaringiz }
- (1): foxmexa,
Rahmat aytdi (1): MR_BaxtiyoR,
Saytingizdagi xatoliklarni ham to'g'irlamoqchi bo'lsangiz bu kodni hamma sahifada ko'rinadigan joyga qo'ying (head.php, header.php).
Endi birin ketin saytdagi noto'g'ri, mantiqsiz, keraksiz, ishlatilmayotgan buyruq so'rovlarini o'chirishingiz mumkin.
To'g'r biroz vaqtingiz ketadi, lekin o'zingiz uchun ham yaxshigina darslar olasiz, sifatli kodlar yozasiz, ortiqcha ahlat kodlardan qutulasiz.
if ($user_id == 1) { // faqat o'zingiz uchun ko'rinadigan qiling }
Endi birin ketin saytdagi noto'g'ri, mantiqsiz, keraksiz, ishlatilmayotgan buyruq so'rovlarini o'chirishingiz mumkin.
To'g'r biroz vaqtingiz ketadi, lekin o'zingiz uchun ham yaxshigina darslar olasiz, sifatli kodlar yozasiz, ortiqcha ahlat kodlardan qutulasiz.
Benyamin, # Benyamin (08.11.2017 / 19:21)
* dan qochinglar maslahatim.Xa, SELECT *, COUNT(*) lardan qutuling.
Chunki siz
buyruqiga javoban `users` ustunidagi barcha javoblarni olasiz, masalan:
id|login|parol|huquqi|jinsi|t_yili|t_oyi|t_kuni|haqiqiy_ismi|familya|telefon|e-mail|hisobi|va h.k. ustunlarni tayyorlab turadi.
Agar:
endi ushbu so'rov sizga bazadan faqat foydalanuvchining ID raqami va haqiqiy ismini tayyorlab beradi. Bu degani hozir sizga foydalanuvching faqat ID raqami va ismi kerak bo'lsa qolgan ustunlarni ham so'ramang, shunda bazani ortiqcha bezovta qilmagan bo'lasiz.
Umuman olganda MySQL optimizatsiya faqat bundan iborat emas, bu oddiy tushuncha.
Savollar, duch kelgan muammolaringiz bo'lsa bemalol yozib qoldirishlaringiz mumkin.
* dan qochinglar maslahatim.Xa, SELECT *, COUNT(*) lardan qutuling.
Chunki siz
SELECT * FROM `users`
id|login|parol|huquqi|jinsi|t_yili|t_oyi|t_kuni|haqiqiy_ismi|familya|telefon|e-mail|hisobi|va h.k. ustunlarni tayyorlab turadi.
Agar:
SELECT `id`,`haqiqiy_ismi` FROM `users`
Umuman olganda MySQL optimizatsiya faqat bundan iborat emas, bu oddiy tushuncha.
Savollar, duch kelgan muammolaringiz bo'lsa bemalol yozib qoldirishlaringiz mumkin.
mysql_num_rows(
mysql_query(
mysql_resurs( hk ködlar ham sql ga kiradimi yoki? Bu ködlarni vazifasinixam yozsela iltimos
mysql_query(
mysql_resurs( hk ködlar ham sql ga kiradimi yoki? Bu ködlarni vazifasinixam yozsela iltimos
Tayota, # Tayota (08.11.2017 / 20:50)
mysql_num_rows(
mysql_query(
mysql_resurs( hk ködlar ham sql ga kiradimi yoki? Bu ködlarni vazifasinixam yozsela iltimos
Umuman olganda bu kodlar PHP ning MySQL bilan ishlash funksiyalariga kiradi.
mysql_num_rows - So'rov natijalarining satr sonini qaytaradi
mysql_query - bazaga MySQL so'rovini yuboradi
mysql_result - So'rov natijalari ma'lumotlarini qaytaradi
http://php.net/ juda ko'p savollarga javob beradigan rasmiy manba.
Hozirda php ni o'rganishni boshlaganlar faqat yuqorida keltirilgan baza bilan ishlash ma'lumotlarini bilsa ham bazaga ma'lumot yozib, ma'lumot olishi mumkin, lekin PHP da baza bilan ishlash uchun juda ko'p funksiyalar bor, har bir elementdan to'g'ri foydalanilsa sayt havsizligi ham, baza optimizatsiasi ham joyida bo'ladi.
mysql_num_rows(
mysql_query(
mysql_resurs( hk ködlar ham sql ga kiradimi yoki? Bu ködlarni vazifasinixam yozsela iltimos
Umuman olganda bu kodlar PHP ning MySQL bilan ishlash funksiyalariga kiradi.
mysql_num_rows - So'rov natijalarining satr sonini qaytaradi
mysql_query - bazaga MySQL so'rovini yuboradi
mysql_result - So'rov natijalari ma'lumotlarini qaytaradi
http://php.net/ juda ko'p savollarga javob beradigan rasmiy manba.
Hozirda php ni o'rganishni boshlaganlar faqat yuqorida keltirilgan baza bilan ishlash ma'lumotlarini bilsa ham bazaga ma'lumot yozib, ma'lumot olishi mumkin, lekin PHP da baza bilan ishlash uchun juda ko'p funksiyalar bor, har bir elementdan to'g'ri foydalanilsa sayt havsizligi ham, baza optimizatsiasi ham joyida bo'ladi.
Rahmat aytdi (1): Tayota,
'where `cid` = \'' . $id . '\' order by `type` asc, `name` asc';
bu nimaniki? 'where `cid` bu id bilan tartiblaydimi yoki
order by `type` bu tartiblaydimi
bu nimaniki? 'where `cid` bu id bilan tartiblaydimi yoki
order by `type` bu tartiblaydimi
Сирожиддин, # Сирожиддин (08.11.2017 / 20:19)
Saytingizdagi xatoliklarni ham to'g'irlamoqchi bo'lsangiz bu kodni hamma sahifada ko'rinadigan joyga qo'ying (head.php, header.php).
if ($user_id == 1) { // faqat o'zingiz uchun ko'rinadigan qiling
Bularni o'chirsam aniq hechnarsa bo'lmaydimi?
Saytingizdagi xatoliklarni ham to'g'irlamoqchi bo'lsangiz bu kodni hamma sahifada ko'rinadigan joyga qo'ying (head.php, header.php).
if ($user_id == 1) { // faqat o'zingiz uchun ko'rinadigan qiling
Bularni o'chirsam aniq hechnarsa bo'lmaydimi?
Biriktirilgan fayllar [3]:
— screenshot_2017-11-27-03-38-58.png (133.09 KB) (183 ↴)
— screenshot_2017-11-27-03-39-05.png (121.62 KB) (184 ↴)
— screenshot_2017-11-27-03-39-10.png (93.44 KB) (150 ↴)
— screenshot_2017-11-27-03-38-58.png (133.09 KB) (183 ↴)
— screenshot_2017-11-27-03-39-05.png (121.62 KB) (184 ↴)
— screenshot_2017-11-27-03-39-10.png (93.44 KB) (150 ↴)
#3 - Voy vuuuuuuu jinnicha kod ekan nahot saytimda shuncha hato bo'lsa
Hozr johncms ni off versiasida sinab ko'ramiz
Hozr johncms ni off versiasida sinab ko'ramiz
Mysql baza juda tez tölib qolyapti instal qilaman 10 15 minut ishlab baza 1 gb i ozginadan keyin yana köpayib sayt qotyapti? Xatolik nimadan bölishi mumkin men aval * dan kamroq foydalanishni bilmasdim köp joydagi mysqllarda * örniga ustun tanlangan edi men * qib chiqdim anchaaaa joyni qildim yo muamo menda *mi?
Сирожиддин,
Bet bo'limiga П1 П2 yoziladi shularni qanday ajratip olsa bo'ladi
Masalan П1 (12) ta bor
П2(2) ta bor shularni ajratish kerak
SELECT `bet` FROM `club`
Bet bo'limiga П1 П2 yoziladi shularni qanday ajratip olsa bo'ladi
Masalan П1 (12) ta bor
П2(2) ta bor shularni ajratish kerak
DjHuSo,
Faqat bet ustinidan П1 larni chiqaradi.
Faqat bet ustinidan П2 larni chiqaradi.
SELECT `bet` FROM `club` WHERE `bet` = 'П1'
Faqat bet ustinidan П1 larni chiqaradi.
SELECT `bet` FROM `club` WHERE `bet` = 'П2'
Faqat bet ustinidan П2 larni chiqaradi.
Tayota, # Tayota (27.11.2017 / 22:29)
Mysql baza juda tez tölib qolyapti instal qilaman 10 15 minut ishlab baza 1 gb i ozginadan keyin yana köpayib sayt qotyapti? Xatolik nimadan bölishi mumkin men aval * dan kamroq foydalanishni bilmasdiBu siz yaratgan qo`shimcha modlaringizning xatosi bazaga birnecha marta davomiy so`rov qo`shivoti! Maslaxatim modullarizi tekshirib chiqing!
Mysql baza juda tez tölib qolyapti instal qilaman 10 15 minut ishlab baza 1 gb i ozginadan keyin yana köpayib sayt qotyapti? Xatolik nimadan bölishi mumkin men aval * dan kamroq foydalanishni bilmasdiBu siz yaratgan qo`shimcha modlaringizning xatosi bazaga birnecha marta davomiy so`rov qo`shivoti! Maslaxatim modullarizi tekshirib chiqing!
Rahmat aytdi (1): Tayota,
tog'irisi hozirda mysql_connect, mysql_query funksiyalari ancha eskirib qoldi, hatto php 7da olib tashlandi, shuning uchun yangi dasturchilar mysqli obyektlari bilan ishlashni o'rgansa bo'laveradi
Tavsiya etamiz:
- Hoziroq maydonlarni to'ldiring va reklamangizni joylashtiring!
Mavzuga oid xabarlar soni: 58 ta
So'ngi faollik vaqti: 10:30:08, 8 Jun 2020