Engineering Notes
2.57K subscribers
149 photos
5 files
217 links
Kanalda asosan backend engineeringga oid postlar yozib boriladi.

Ba'zi postlarda xatoliklar bor.
Postlar foydali bo’lgan bo’lsa adminni duo qilib qo’ying. Rahmat.

Contact: @Bobosher_Musurmonov
LinkedIn: https://www.linkedin.com/in/bobosher-musurmonov
Download Telegram
Mana nima sabab bo'lgan:
Mark Zuckerberg:
Forwarded from Azizbek Xushnazarov
Assalomu alaykum. bitta narsani query qiliw kerak. yordam berolasmi.

BaseCategory
-category1
-category2
-category3

Product1 category1 ga kiradi.
menga product1 orqali category2 va category3 dagi productlarni olish kerak.

categroy1.parent desa BaseCategory ni beradi.

BaseCategory.subcategories desa sub categoriyalar ni beradi.
Forwarded from Azizbek Xushnazarov
Forwarded from Azizbek Xushnazarov
buni tuzdim. Wu usul eng optimalimi?🙂
Forwarded from Bobosher Musurmonov
id larni yig'masdan Category objectlarni o'zi bilan ishlasangiz ham bo'ladi.
Forwarded from Bobosher Musurmonov
Balki, sizning queryingiz more effectivedir.

Birinchidan, katta ehtimol bilan objectlar bilan ishlaganda hamma columnlar fetch qilinadi. Bizga esa faqat id kerak. Demak, biz olgan dataning katta qismi keraksiz.

Ikkinchidan, objectlar bilan in ishlatilganda sql queryda albatta, id ishlatiladi. Lekin iterabledagi objectlardan id aynan qanday ajratib olinishidan xabarim yo'q. Balki ORM levelda iteration bo'lar, balki boshqacha. Anig'ini bilmayman.
Forwarded from Oyatillo Ma'mirjonov
#savol #MemoryError

Python kodni ishga tushiraman desam MemoryError chiqyapti, nima qilsam bo'ladi.

Faqat oddiy print('hello world') kodlar ishlayapti, kattaro paketlarni import qilingan kodlar ishlamayapti


Linux: Ubuntu(18.04)
Ram - 4GB
Forwarded from Bobosher Musurmonov
#javob
MemoryError dasturingiz ishlashi uchun RAM yetmay qolganda sodir bo'ladi. Hozir siz katta ehtimol bilan katta hajmdagi ma'lumotlarni to'g'ri pythonga chiqarib(bunda ma'lumot to'liq RAMda saqlanib turadi) ishlashga harakat qilayapsiz. Bu biror fayl yoki database bo'lishi mumkin.
Yaxshisi, hamma ma'lumotni bittada olmasdan, bir qismini olib, u bilan ishlab bo'lgach, xotirani bo'shatib keyingi qismga o'tib va h.k. ishlang.
Forwarded from Oyatillo Ma'mirjonov
Cpu ni python ko'p egallamayapti, mysql egallayapti.
Python bo'lsa ram ni.

Google tog'a bu pythondimas serverni sozlash kerak diyapti😐
Forwarded from Bobosher Musurmonov
Databasedan fetch qilayotgan bo'lsangiz limit va offsetdan foydalanib paginationga o'xshash narsa qilib ko'ring.
Forwarded from Bobosher Musurmonov
Loop ishlatib foydalanuvchilarga bo'lib-bo'lib jo'nating.
Forwarded from Oyatillo Ma'mirjonov
Mysql Cpu ni bazaga ko'p so'rov bo'lsa egallaydimi yo katta ma'lumot bo'lsami?
Forwarded from Bobosher Musurmonov
Fetch qilingan ma'lumotlar RAMda saqlanadi.
SELECT * FROM users;
query resultlarini fetch qilsangiz users tabledagi hamma ma'lumot RAMga ham copy qilinadi.
Forwarded from PyNotes
Title: String interning
To alleviate memory that can be quickly consumed by strings, Python implements string interning
— A string will be interned if it is a compile-time constant, is not the production of constant folding or is not longer than 20 characters, and consists exclusively of ASCII letters, digits, or underscores.
—Empty strings are interned.
Source
Forwarded from Azizbek Xushnazarov
#savol

Ko'pchilik vakansiyalarda Django va birorta SQL yozilgan bo'ladi.

Django ORM turganda SQL o'rganishim kerakmi?

Misol uchun Postgresql ni o'rgansam uning men uchun pro taraflari nima buladi.

Yoki SQL ni shunchaki ORM qanday ishlayotganligi haqida tasavvurga ega bo'lish uchun o'rganishim kerakmi?
Forwarded from Bobosher Musurmonov
Yaxshi savol. Avvalroq meni ham o'ylantirgan. Shaxsiy tajribamdan kelib chiqib ba'zi narsalarni aytaman:

1. ORM database emas. U bizga ma'lumotlarni qanday bersa, biz shunday qabul qilamiz. Kimdir Django ORMni yaxshi tushunishi va shu bilan birga RDBMS haqida hech narsa bilmasligi mumkin. Ma'lumotlar aslida qanday saqlanishi va uni qanday ishlatishni bilmaslik db haqida noto'g'ri tasavvurlarga, demakki notog'ri yoki o'ta foydasiz usullardan foydalanishga olib keladi.

2. Django ORM ancha kuchli bo'lsa-da albatta chegaralangan. Shunday vaziyatlar bo'ladi-ki, ORM ish bermaydi. O'sha vaziyatlarda raw query yozishga to'g'ri keladi.

3. ORMga bog'lanib qolish djangodan boshqa texnologiyalar bilan ishlaganda katta qiyinchiliklarga olib keladi. Dasturchi sifatida faqat django bilan cheklanish yaxshi emas.

4. DB engineering bu shunchaki table va data emas. Bu butun boshli soha. Uning ham ichida bir dunyo usullari, sir-sinoatlari bor(indexes, replication, sharding, CC, ...). Ma'lumotlar bilan to'g'ri ishlay olish loyihangiz bilan qulayroq ishlash va eng yaxshi optimizatsiyalarni qilishga imkon beradi.

5. "Qanday ishlatish"dan ko'ra "qanday ishlashi"ni tushuna olish ko'p imkoniyatlar beradi.
👍3