Сирожиддин
#1
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:
  1. // Xorazm dan bazaga yozilgan foydaluvchilar bormi?
  2.  
  3. // Bu noto'g'ri buyruq (so'rov):
  4. $r = mysql_query("SELECT * FROM users WHERE viloyat = 'Xorazm'");
  5. if (mysql_num_rows($r) > 0) {
  6. // ... kodlaringiz
  7. }
  8.  
  9. // Bu yaxshi usul:
  10. $r = mysql_query("SELECT 1 FROM users WHERE viloyat = 'Xorazm' LIMIT 1");
  11. if (mysql_num_rows($r) > 0) {
  12. // ... kodlaringiz
  13. }
Benyamin
#2
* dan qochinglar maslahatim.
Сирожиддин
#3
Saytingizdagi xatoliklarni ham to'g'irlamoqchi bo'lsangiz bu kodni hamma sahifada ko'rinadigan joyga qo'ying (head.php, header.php).
  1. if ($user_id == 1) { // faqat o'zingiz uchun ko'rinadigan qiling
  2. ini_set('display_errors', 1);
  3. ini_set('display_startup_errors', 1);
  4. }


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.
Сирожиддин
#4
Benyamin, # Benyamin (08.11.2017 / 19:21)
* dan qochinglar maslahatim.
Xa, SELECT *, COUNT(*) lardan qutuling.
Chunki siz
  1. SELECT * FROM `users`
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:
  1. SELECT `id`,`haqiqiy_ismi` FROM `users`
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.
33
Tayota
#5
mysql_num_rows(
mysql_query(
mysql_resurs( hk ködlar ham sql ga kiradimi yoki? Bu ködlarni vazifasinixam yozsela iltimos
JRCoder
#6
Shu mavzu orqali sal bo'lsa ham ma'lumot oldim raxmat
Сирожиддин
#7
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.
gi8ri7
#8
'where `cid` = \'' . $id . '\' order by `type` asc, `name` asc';


bu nimaniki? 'where `cid` bu id bilan tartiblaydimi yoki
order by `type` bu tartiblaydimi
gi8ri7
#9
Сирожиддин, # Сирожиддин (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?
Biriktirilgan fayllar [3]:
 screenshot_2017-11-27-03-38-58.png (133.09 KB) (150 ↴)
 screenshot_2017-11-27-03-39-05.png (121.62 KB) (155 ↴)
 screenshot_2017-11-27-03-39-10.png (93.44 KB) (119 ↴)
gi8ri7
#10
#3 - Voy vuuuuuuu jinnicha kod ekan nahot saytimda shuncha hato bo'lsa

Hozr johncms ni off versiasida sinab ko'ramiz
Сирожиддин
#11
Master-X, Bo’ladi, kodlardan xatofoydalanilgan
Prolive
#12
Salom, forumdoshlar!
Maslaxatim baza bilan faqat PDO bilan ishlang! Juda xafsiz va yaxshi himoya!
33
Tayota
#13
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?
DjHuSo
#14
Сирожиддин,
  1. 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
Bekmurod
#15
DjHuSo,
  1. SELECT `bet` FROM `club` WHERE `bet` = 'П1'

Faqat bet ustinidan П1 larni chiqaradi.

  1. SELECT `bet` FROM `club` WHERE `bet` = 'П2'

Faqat bet ustinidan П2 larni chiqaradi.
410
uDesign
#16
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 bilmasdi
Bu siz yaratgan qo`shimcha modlaringizning xatosi bazaga birnecha marta davomiy so`rov qo`shivoti! Maslaxatim modullarizi tekshirib chiqing!
298
STRaKER
#17
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
GR-MASSARI
#18
STRaKER, OF uchun uzr lekin php 7 ni qayerdan topsa boladi
MrShahzodbek
#19
PHP 7ning nimasi kerak? Php 7 packmi? Hostinglarda o'rnatilgan bo'ladi bu!
298
STRaKER
#20
GR-MASSARI, 000webhost.com hostingida php 7niyam qo'llaydi

Kunduzi: 19°C

25 Apr 2024 yil
Joylashuv aniqlanmadi