what is differ between index method in postgres??
In PostgreSQL, there are several index methods that can be used to improve query performance. Some of the most commonly used index methods are:
—————————————————-
B-tree index: This is the default index method in PostgreSQL and is used for most general-purpose queries. It is suitable for queries that require sorting and range search on a single column or multiple columns.
Hash index: This index method is used for equality searches on a single column. It is efficient for exact match queries but is not suitable for range queries or sorting.
GiST (Generalized Search Tree): This index method is used for more complex data types such as geometric, text, and IP addresses. It is used for complex queries that require full-text search, spatial search, or range queries.
GIN (Generalized Inverted Index): This index method is used for complex data types, similar to GiST, but is optimized for large data sets with many duplicates.
SP-GiST (Space-Partitioned Generalized Search Tree): This index method is used for complex data types, similar to GiST, but is optimized for data sets that have a high degree of structural symmetry.
BRIN (Block Range INdex): This index method is used for large data sets that are physically stored in a sorted order, such as time-series data.
Bloom filter index: This index method is used for large data sets where it is not practical to build a traditional index. It is used to test if a value is a member of a large set of values.
https://t.me/mywebcoder
In PostgreSQL, there are several index methods that can be used to improve query performance. Some of the most commonly used index methods are:
—————————————————-
B-tree index: This is the default index method in PostgreSQL and is used for most general-purpose queries. It is suitable for queries that require sorting and range search on a single column or multiple columns.
Hash index: This index method is used for equality searches on a single column. It is efficient for exact match queries but is not suitable for range queries or sorting.
GiST (Generalized Search Tree): This index method is used for more complex data types such as geometric, text, and IP addresses. It is used for complex queries that require full-text search, spatial search, or range queries.
GIN (Generalized Inverted Index): This index method is used for complex data types, similar to GiST, but is optimized for large data sets with many duplicates.
SP-GiST (Space-Partitioned Generalized Search Tree): This index method is used for complex data types, similar to GiST, but is optimized for data sets that have a high degree of structural symmetry.
BRIN (Block Range INdex): This index method is used for large data sets that are physically stored in a sorted order, such as time-series data.
Bloom filter index: This index method is used for large data sets where it is not practical to build a traditional index. It is used to test if a value is a member of a large set of values.
https://t.me/mywebcoder
Telegram
Dasturlash Uzbekistan
Ushbu kanal sizlar uchun
1.Dasturlash bo'yicha bilim va ko'nikmalarga ega bo'lish✔️
Gruppasi: @dasturchilar_2021
Savol va murajaat uchun: @boot_spring
1.Dasturlash bo'yicha bilim va ko'nikmalarga ega bo'lish✔️
Gruppasi: @dasturchilar_2021
Savol va murajaat uchun: @boot_spring
👍2
#REGEX java :
A regular expression, also known as a regex, is a sequence of characters that defines a search pattern. These patterns can be used to search and manipulate text, and are often used for pattern matching with strings.
Regex patterns are composed of normal characters and special characters. Normal characters, such as letters and digits, match themselves exactly in a string. Special characters, such as . (dot) or * (asterisk), are used to specify search patterns.
For example, the regex pattern a.b would match any string that contains an a followed by any character, followed by a b. So, the string abc would match this pattern, but the string acb would not.
The regex pattern a*b would match any string that contains an a zero or more times, followed by a b. So, the string b would match this pattern, as well as the string aaab.
Regex patterns can be very powerful, but also complex to write and understand. There are many resources available for learning about regex, including online tutorials and reference materials.
In Java, regex patterns are used with the java.util.regex package, which provides classes for matching regular expressions with strings.
#inglizcha content tayyorlangani uchun uzur🙁🙁🙁
@mywebcoder
A regular expression, also known as a regex, is a sequence of characters that defines a search pattern. These patterns can be used to search and manipulate text, and are often used for pattern matching with strings.
Regex patterns are composed of normal characters and special characters. Normal characters, such as letters and digits, match themselves exactly in a string. Special characters, such as . (dot) or * (asterisk), are used to specify search patterns.
For example, the regex pattern a.b would match any string that contains an a followed by any character, followed by a b. So, the string abc would match this pattern, but the string acb would not.
The regex pattern a*b would match any string that contains an a zero or more times, followed by a b. So, the string b would match this pattern, as well as the string aaab.
Regex patterns can be very powerful, but also complex to write and understand. There are many resources available for learning about regex, including online tutorials and reference materials.
In Java, regex patterns are used with the java.util.regex package, which provides classes for matching regular expressions with strings.
#inglizcha content tayyorlangani uchun uzur🙁🙁🙁
@mywebcoder
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
😊😊 Do'stlarim ilm olishni erta kechi yo'q va to'g'ri niyyatni amalga oshishi hech qachon yolg'on bo'lmas ekan
Do'stlaringizga ham ulashing.
@mywebcoder
Do'stlaringizga ham ulashing.
@mywebcoder
Dism-10.1.1002.1.zip
3.6 MB
Ushbu zip file da siz o'zingizni kompyuteringizga zarur bo'lgan programmani tanlab ishlatishingiz mumkin 🤝🤝
😉😉Do'stlaringizga ulashing, ko'pchilikka foydamiz tegsin.😊😊
@mywebcoder
😉😉Do'stlaringizga ulashing, ko'pchilikka foydamiz tegsin.😊😊
@mywebcoder
👍1
unlocker-1-9-2.zip
1014.9 KB
Unlocker faylladan blokni ochishga va o'chmayotgan fayllarni o'chirishga yordam beradi. (Har qanday faylni 😁“udalit”😁 o’chirish uchun ishlatiladigan dastur, faqat sistemniy va juda katta hajmdagi fayllarni o'chirmang)
🫵🏻 Do'stlaringiz bilan ulashing ko'pchilikga yordamimiz tegsin
@mywebcoder
🫵🏻 Do'stlaringiz bilan ulashing ko'pchilikga yordamimiz tegsin
@mywebcoder
Blackbox - Google Chrome ishlatadigan dasturchilar uchun juda ajoyib extension.
Bu yordamida, youtubeda biror videodars ko'rib turgan paytingizda, videodagi kodlarni COPY qilish imkonini beradi.
Endi videoni pauza qilib birma - bir kodlarni ko'chirib o'tirishga hojat yo'q.
Ajoyib a :)
@mywebcoder
Bu yordamida, youtubeda biror videodars ko'rib turgan paytingizda, videodagi kodlarni COPY qilish imkonini beradi.
Endi videoni pauza qilib birma - bir kodlarni ko'chirib o'tirishga hojat yo'q.
Ajoyib a :)
@mywebcoder
Kompyuteringiz ip-adresini aniqlash dastur kodi:
import socket
def ip_adres():
## socket.gethostname() metodi orqali hostnameni olamiz
hostname = socket.gethostname()
## socket.gethostbyname() metodi orqali ip_addressni olamiz
ip_address = socket.gethostbyname(hostname)
## Ip_address va hostname ni ekranga chiqaramiz
print("Sizning IP-adresingiz: {} ".format(ip_address))
print("Kompyuter egasi: {} ".format(hostname))
ip_adres()
@mywebcoder
import socket
def ip_adres():
## socket.gethostname() metodi orqali hostnameni olamiz
hostname = socket.gethostname()
## socket.gethostbyname() metodi orqali ip_addressni olamiz
ip_address = socket.gethostbyname(hostname)
## Ip_address va hostname ni ekranga chiqaramiz
print("Sizning IP-adresingiz: {} ".format(ip_address))
print("Kompyuter egasi: {} ".format(hostname))
ip_adres()
@mywebcoder
This media is not supported in your browser
VIEW IN TELEGRAM
Ushbu hover tasvirni mashtablash effekti veb-saytingizni sifatli qilishni bir usulidir 🚀 Quyidagi kodni tekshiring 👨💻
✅Do'stlarizga ham ulashing:
👉 Dasturlashni biz bilan birga o'rganing:
✅Do'stlarizga ham ulashing:
👉 Dasturlashni biz bilan birga o'rganing:
👍1🔥1
chat GPT xatolari topilishda davom etilayapti😅😅😅
🫵🏻Do'stlaringizga yuborishni unutmang Zero ko'pchilikga yordamimiz tegsin
@mywebcoder
🫵🏻Do'stlaringizga yuborishni unutmang Zero ko'pchilikga yordamimiz tegsin
@mywebcoder
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Yorqin animatsiya bilan ovozli tugma.🔥
✅Do'stlarizga ham ulashing:
👉 Dasturlashni biz bilan birga o'rganing:
@mywebcoder
✅Do'stlarizga ham ulashing:
👉 Dasturlashni biz bilan birga o'rganing:
@mywebcoder
👍1🔥1
💻 Web dasturlashni o'rganish uchun 4 ta sabab
1. Doimiy ish o'rinlari
2020-yilda taxminan 1.4 million IT sohada vakansiyalar ochilgan, ammo ulardan 400,000 ta o'rin egallangan xolos. Demak ushbu sohada talab doimo yuqori bo'ladi
2. Yuqori maosh
Nafaqat Yevropa va AQSH'da balki O'zbekistonda ham dasturchilar uchun yuqori maosh to'lanadi. AQSH Yangiliklar va Jahon axboroti ma'lumotlariga qaraganda, web dasturchilarning dunyo bo'yicha o'rtacha $64,970 to'lanadi.
3. Hech qanday diplom shart emas
Juda ko'plab IT kompaniyalar diplomsiz ishga qabul qilish tizimiga o'tdi. Dasturchi bo'lib ishlash uchun hech qanday diplom yoki 4 yillik oliy ta'lim olish majburiy emas.
4. Frilanserlik imkoniyati
Agar kompaniyalarda ish topa olmasangiz, frilanser sifatida ishlash imkoniyati ham bor. Ofisdan turib ishlash shart emas. Muhimi noutbuk va internet bo'lsa bas
1. Doimiy ish o'rinlari
2020-yilda taxminan 1.4 million IT sohada vakansiyalar ochilgan, ammo ulardan 400,000 ta o'rin egallangan xolos. Demak ushbu sohada talab doimo yuqori bo'ladi
2. Yuqori maosh
Nafaqat Yevropa va AQSH'da balki O'zbekistonda ham dasturchilar uchun yuqori maosh to'lanadi. AQSH Yangiliklar va Jahon axboroti ma'lumotlariga qaraganda, web dasturchilarning dunyo bo'yicha o'rtacha $64,970 to'lanadi.
3. Hech qanday diplom shart emas
Juda ko'plab IT kompaniyalar diplomsiz ishga qabul qilish tizimiga o'tdi. Dasturchi bo'lib ishlash uchun hech qanday diplom yoki 4 yillik oliy ta'lim olish majburiy emas.
4. Frilanserlik imkoniyati
Agar kompaniyalarda ish topa olmasangiz, frilanser sifatida ishlash imkoniyati ham bor. Ofisdan turib ishlash shart emas. Muhimi noutbuk va internet bo'lsa bas
#web #media
Hech qanday dastur o‘rnatmay video montaj qilish imkonini beruvchi foydali sayt.
Sayt manzili gomlab.com
This media is not supported in your browser
VIEW IN TELEGRAM
Horijga chiqishga olingan kredit sababli cheklov qo'yilganligini tekshirishni bilasizmi?
do'stlaringizga ham ulashing👌🏻
@mywebcoder
do'stlaringizga ham ulashing👌🏻
@mywebcoder
6 Types of Database Attacks Hackers Use to Obtain Unauthorized...
🔸 Brute forcing.
🔸 SQL injection.
🔸 Packet sniffing.
🔸 Privilege escalation.
🔸 Exploiting software vulnerabilities.
🔸 Stolen backup tapes.
🧑💻 Infamous database attacks from the past
Don't stop learning!
@mywebcoder
🔸 Brute forcing.
🔸 SQL injection.
🔸 Packet sniffing.
🔸 Privilege escalation.
🔸 Exploiting software vulnerabilities.
🔸 Stolen backup tapes.
🧑💻 Infamous database attacks from the past
Don't stop learning!
@mywebcoder
Junior (Backend) dasturchi bo'lganimda dasturlashni qanday o'rganardim — Beginner Level
yoki portfoliomni qanday boyitardim
Junior dasturchilar ishga kirishda qiyinchilikka duch kelishlari asosiy sababi ularda har tomonlama to'liq qilingan kichik bo'lsa ham loyiha yo'qligida deb bilaman. Portfoliodagi loyihalar, hattoki oddiy blog website bo'lsa ham "Lorem ipsum"ga to'la yoki login ishlamayotgan bo'ladi odatda.
Shu sababli bugun agar Junior (Backend) dasturchi bo'lganimda qanday qilib bitta oddiy blog vebsaytni to'liq ishlab chiqish orqali ham dasturlashni chuqurroq o'rganib, ham portfolio uchun loyiha qilib chiqish mumkinligi haqida aytib o'taman.
1. Texnologiya tanlash va Trelloda reja
Eng birinchi saytni qaysi texnologiyada (yoki 0 dan) yozib chiqmoqchi ekanimni aniqlab olardim. Tasavvur qilish uchun o'zim bilgan PHP va Laravelni olaylik. DB uchun MySQL yoki PostgreSQL, qaysi biri qulayroq bo'lsa. Boshlanishiga shuning o'zi yetarli. Keyin esa qolgan qilishim kerak ishlarni Trelloda reja qilib chiqardim.
2. Asosiy setup, (Docker), Git, GitHub va Run
Keyingi bosqichda shunchaki yangi Laravelni olib, uning Readmesini tozalab, Gitni o'rnatib va uni Githubga "Initial commit" deb joylab qo'yardim. Maqsad ishimning har bir qadami Gitda saqlab ketilishi. Undan keyin boshlang'ich o'rnatish ishlarini amalga oshirib saytni run qilib olardim. Bu narsani esa PHP, Nginx, Postgres Server va Composer kabi narsalarni noutbuk o'ziga o'rnatmasdan Docker (kontenerizatsiya) orqali amalga oshirishga harakat qilardim
3. Bazaga ulanish, ilk migratsiya va jadval
Agar haligacha bazaga ulanishni tekshirib ko'rmagan bo'lsam, oldin bazaga ulanib olib, undan keyin oddiy blog post uchun DB jadvali uchun quyidagi ma'lumotlar bilan migratsiya yozib chiqardim:
- ID; - Title; - Author; - Status; - Created At; - Updated At;
Bu yerda hozircha Author ham oddiy string, qolgani esa standard.
4. Console orqali CRUD
Keyin esa eng oddiy interfeys — console orqali ana shu jadvalga ma'lumot qo'shish, o'qish, yangilash va o'chirish kabi amallarni qo'shib chiqardim. Bunda userdan console orqali title va avtorni qadamma-qadam so'rab, shular orqali blog post yaratardim. Yangilashda esa oldin ID, keyin esa Title va Author.
Bu narsani avvaliga PHP o'zining echo va readline funksiyalari keyin esa Laraveldagi maxsus Console Commands orqali amalga oshirib ikkalasini ham o'rganib olardim.
5. Consoledan REST API ga
Shundan keyin yuqoridagi oddiy CRUD console kommandalarni REST API ga aylantirib chiqardim va Postman orqali ishlatib ko'rardim. Nima uchun GUI emas REST? Sababi REST API yasash, vizual UI yasashdan ancha osonroq )
Faqat bu yerda yasagan API larim aniq RESTful bo'lishiga. Metodlarni URL nomi bilan emas aynan GET, POST, PUT/PATCH, DELETE metodlari orqali farqlashga, umuman iloji boricha RESTful API Best Practicesni qo'llashga alohida e'tibor qaratgan bo'lardim.
6. Oddiy filtr va saralash
Keyin esa blog postlarni status bo'yicha saralab olishni qo'shardim. Masalan, {domain}/posts?status=draft so'rovi faqatgina qoralama postlarni qaytarib beradigan qilib.
Undan keyin esa (saralangan) postlarni yaratilgan sanasi bo'yicha saralashni qo'shardim. Masalan, {domain}/posts?status=active?sort=-created aktiv holdagi eng yangi postlarni (yaratilgan vaqti teskari tartibda) qaytaradigan qilib.
7. Avtorlarni alohida jadvalga olib chiqish
Shundan keyin esa avtorlar qismini normalizatsiya qilib alohida jadvalga olib chiqardim va one-to-many relations yasardim. Bunda relations faqat kod darajasida emas, aynan databaza darajasida boshqarilishiga, postlari bor avtorni adashib o'chirib yuborishga ruxsat bermaslikka alohida e'tibor qaratardim. Qo'shimchasiga indeksatsiya va foreign keylar haqida ham o'qib chiqardim.
Ana shundan keyin yuqoridagi Console va Rest API larni shunga mos o'zgartirib chiqardim. Ikkita joyda o'zgartirishga to'g'ri keldimi? Unda keyingi darajaga o'tish vaqti keldi )
Davomi bor...
#software_engineering #juniors
P.S: "Juniorlarga yordam bermaysizlar" deb shikoyat qiladiganlarga yuborib qo'yinglar )
@Janob_Musayev
yoki portfoliomni qanday boyitardim
Junior dasturchilar ishga kirishda qiyinchilikka duch kelishlari asosiy sababi ularda har tomonlama to'liq qilingan kichik bo'lsa ham loyiha yo'qligida deb bilaman. Portfoliodagi loyihalar, hattoki oddiy blog website bo'lsa ham "Lorem ipsum"ga to'la yoki login ishlamayotgan bo'ladi odatda.
Shu sababli bugun agar Junior (Backend) dasturchi bo'lganimda qanday qilib bitta oddiy blog vebsaytni to'liq ishlab chiqish orqali ham dasturlashni chuqurroq o'rganib, ham portfolio uchun loyiha qilib chiqish mumkinligi haqida aytib o'taman.
1. Texnologiya tanlash va Trelloda reja
Eng birinchi saytni qaysi texnologiyada (yoki 0 dan) yozib chiqmoqchi ekanimni aniqlab olardim. Tasavvur qilish uchun o'zim bilgan PHP va Laravelni olaylik. DB uchun MySQL yoki PostgreSQL, qaysi biri qulayroq bo'lsa. Boshlanishiga shuning o'zi yetarli. Keyin esa qolgan qilishim kerak ishlarni Trelloda reja qilib chiqardim.
2. Asosiy setup, (Docker), Git, GitHub va Run
Keyingi bosqichda shunchaki yangi Laravelni olib, uning Readmesini tozalab, Gitni o'rnatib va uni Githubga "Initial commit" deb joylab qo'yardim. Maqsad ishimning har bir qadami Gitda saqlab ketilishi. Undan keyin boshlang'ich o'rnatish ishlarini amalga oshirib saytni run qilib olardim. Bu narsani esa PHP, Nginx, Postgres Server va Composer kabi narsalarni noutbuk o'ziga o'rnatmasdan Docker (kontenerizatsiya) orqali amalga oshirishga harakat qilardim
3. Bazaga ulanish, ilk migratsiya va jadval
Agar haligacha bazaga ulanishni tekshirib ko'rmagan bo'lsam, oldin bazaga ulanib olib, undan keyin oddiy blog post uchun DB jadvali uchun quyidagi ma'lumotlar bilan migratsiya yozib chiqardim:
- ID; - Title; - Author; - Status; - Created At; - Updated At;
Bu yerda hozircha Author ham oddiy string, qolgani esa standard.
4. Console orqali CRUD
Keyin esa eng oddiy interfeys — console orqali ana shu jadvalga ma'lumot qo'shish, o'qish, yangilash va o'chirish kabi amallarni qo'shib chiqardim. Bunda userdan console orqali title va avtorni qadamma-qadam so'rab, shular orqali blog post yaratardim. Yangilashda esa oldin ID, keyin esa Title va Author.
Bu narsani avvaliga PHP o'zining echo va readline funksiyalari keyin esa Laraveldagi maxsus Console Commands orqali amalga oshirib ikkalasini ham o'rganib olardim.
5. Consoledan REST API ga
Shundan keyin yuqoridagi oddiy CRUD console kommandalarni REST API ga aylantirib chiqardim va Postman orqali ishlatib ko'rardim. Nima uchun GUI emas REST? Sababi REST API yasash, vizual UI yasashdan ancha osonroq )
Faqat bu yerda yasagan API larim aniq RESTful bo'lishiga. Metodlarni URL nomi bilan emas aynan GET, POST, PUT/PATCH, DELETE metodlari orqali farqlashga, umuman iloji boricha RESTful API Best Practicesni qo'llashga alohida e'tibor qaratgan bo'lardim.
6. Oddiy filtr va saralash
Keyin esa blog postlarni status bo'yicha saralab olishni qo'shardim. Masalan, {domain}/posts?status=draft so'rovi faqatgina qoralama postlarni qaytarib beradigan qilib.
Undan keyin esa (saralangan) postlarni yaratilgan sanasi bo'yicha saralashni qo'shardim. Masalan, {domain}/posts?status=active?sort=-created aktiv holdagi eng yangi postlarni (yaratilgan vaqti teskari tartibda) qaytaradigan qilib.
7. Avtorlarni alohida jadvalga olib chiqish
Shundan keyin esa avtorlar qismini normalizatsiya qilib alohida jadvalga olib chiqardim va one-to-many relations yasardim. Bunda relations faqat kod darajasida emas, aynan databaza darajasida boshqarilishiga, postlari bor avtorni adashib o'chirib yuborishga ruxsat bermaslikka alohida e'tibor qaratardim. Qo'shimchasiga indeksatsiya va foreign keylar haqida ham o'qib chiqardim.
Ana shundan keyin yuqoridagi Console va Rest API larni shunga mos o'zgartirib chiqardim. Ikkita joyda o'zgartirishga to'g'ri keldimi? Unda keyingi darajaga o'tish vaqti keldi )
Davomi bor...
#software_engineering #juniors
P.S: "Juniorlarga yordam bermaysizlar" deb shikoyat qiladiganlarga yuborib qo'yinglar )
@Janob_Musayev