همه چیز درباره پستگرس(POSTGRES)

پستگرس یک بانک اطلاعاتی متن باز هست که جزو قدرتمند ترین بانک های اطلاعاتی شناخته می‌شود. این بانک اطلاعاتی از نوع RDBMS و Relational است که در جدول‌ها میتوان از رابطه های one to one / one to many / many to one / many to many استفاده کرد.
متن باز بودن پستگرس باعث شده که خیلی از توابع به آن افزوده شود که این ویژگی باعث میشود این بانک اطلاعاتی روز به روز قویتر از قبل باشد و امکانات جدید تری به آن اضافه شود. نکته مهم این است که پستگرس در سیستم عامل MacOs Server به عنوان دیتابیس پیشفرض شناخته نمی‌شود.

Mysql چیست ؟

یک بانک اطلاعاتی از نوع RDBMS و Relational هست که می‌توان آن را جایگزین Sql Server (Microsoft) دانست. Mysql یک بانک اطلاعاتی متن باز بوده که توسط یک شرکت سوئدی به نام Mysql AB توسعه پیدا کرد و در سال 2010 اوراکل Mysql را خریداری کرد. بسیاری معتقد هستند که اوراکل و دیتابیسش (Oracle Data Base)بسیار قدرتمند است و دلیلی نداشت که Mysql را خریداری کند و خیلی‌ها معتقدند که هدف اوراکل از خرید Mysql این بوده که رقیبش رو خریداری کنه و از بازار حذفش کنه چرا که بعد از خرید اوراکل، Mysql دیگرمحبوبیت خودش را از دست داده و دیگر بانک‌های اطلاعاتی نظیر پستگرس و….. محبوب شدند.

 

 

فرق پستگرس(POSTGRES) با Mysql

سرعت پستگرس به مراتب بالاتر از Mysql هست و مثلا اگر سایتی مانند فیسبوک را داشته باشیم و عملکرد آن را برررسی کنیم، این سرعت خیلی به چشم می آید. برای سایت هایی مثل سایت های وردپرسی Mysql گزینه خوبی میتواند باشد و جزو بهترین گزینه ها محسوب میشود. این نکته را هم در نظر داشته باشید که Mysql قدمت خیلی بیشتری دارد. البته در ورژن های جدید یعنی 10و11و12و13 پستگرس سرعت بهتری دارد و اگر ورژن های قدیمی رو بخواهیم مقایسه کنیم، Mysql سرعت بهتری دارد.
طراحی پستگرس یک پارچه هست اما Mysql دو لایه می باشد و در لایه اول ، لایه ی Sql بوده و در در لایه دوم Storage Layer می باشد.
پستگرس بیشتر برای استفاده‌ی کاربرهای حرفه ای درست شده است اما mysql به راحتی و توسط همه ی افراد می‌تواند قابل استفاده باشد و با PHPmyadmin یک محیط کاربری فوق العاده ساده به همراه دسترسی های خیلی زیاد برای تمامی کاربران در دسترس است.

در آخر پستگرس به دلیل استفاده از ساختار ACID خیلی مطمئن تر و قابل اطمینان تر از mysql است و بسیار پیشنهاد می‌شود.

چند مثال نمونه برای پست گرس :

  • Apple
  • BioPharm
  • Etsy
  • IMDB
  • Macworld
  • Debian
  • Fujitsu
  • Red Hat
  • Sun Microsystem
  • Cisco
  • Skype

چند نمونه از Mysql :

  • GitHub
  • US Navy
  • NASA
  • Tesla
  • Netflix
  • WeChat
  • Facebook
  • Zendesk
  • Twitter
  • Zappos
  • YouTube
  • Spotify

مثال هایی برای کوئری زدن در Mysql و Postgres :

کوئری های پستگرس در برخی مواقع شبیه به Mysql میباشد.

Selecting records from the mirbozorgi table

:PostgreSQL query
;SELECT * FROM mirbozorgi

MySQL query
;SELECT * FROM mirbozorgi

Inserting records into the  mirbozorgi table

:PostgreSQL query
;INSERT INTO mirbozorgi (name_id, branch, status) VALUES (‘arsalan’, ‘main1’, ‘done’)

:MySQL query
;INSERT INTO mirbozorgi (name_id, branch, status) VALUES (‘arsalan’, ‘main1’, ‘done’)

Updating records in the product table

:PostgreSQL query
;UPDATE product SET branch=”main1″ WHERE custages

:MySQL query
;UPDATE product SET branch=”main1″ WHERE custages > 2

 

قابلیتهای Postgresql نسبت به Mongo DB چیست و چرا باید از این دیتابیس بیشتر استفاده شود ؟

مونگو دی بی MongoDB به دلیل توانایی ذخیره سازی فایل های Json بسیار معروف است و Document Oriented است. که این کار باعث می‌شود کلی از جدول‌های واسط از بین برود ولی مشکلی که برای برنامه نویسان  ایجاد میکند این است که در هنگام کار و استفاده باید حواسشان به Relation ها باشد چون Relation در کار نیست.
پست گرس یک Rdbms ای است که میتواند ستونی درست کند که از جنس جیسون باشد و توانایی کار MongoDB را دارد و با این تفاوت که هم جدول دارد و هم از ریلیشن پشتیبانی می‌کند و کار را برای برنامه‌نویسان راحت می‌کند.
دیگر قابلیت های این Database این است که از JsonB در نسخه جدید پشتیبانی کرده و این قابلیت رو دارد که باینری شده و قسمت های سفید و خالی را حذف می‌کند که این عمل باعث می‌شود سایز دیتابیس ما تا 10 برابر کمتر شده و در مقابل سرعت انجام عملیات بالاتر می‌رود. همچنین می‌تواند duplicated value ها را از بین ببرد.
قابلیت جالب دیگر این است که Postgresql سرعت Index کردن و جوین اطلاعات بیشتری را دارد.

 

JSON در مقایسه با JSONB :

PostgreSQL از دو تایپ json و jsonB پیروی می کند.

Json

دقیقا یک کپی از دیتای وارد شده را نگه داری میکند و برای همین پردازش کردن دیتاها هر بار یک زمانی طول می‌کشد.

JsonB

به صورت باینری دیتا رو نگه داری میکند ، پس برای پردازش نیاز به زمان و پردازش وجود ندارد. همچنین این نوع تایپ از Index کردن پشتیبانی می‌کند که باعث شده سرعت عملیات کوئری‌ها افزایش داده پیدا کند.

 و در آخر

چون تمرکز ما بر روی جاوا و فریم وورک Spring هست، یک پروژه آماده کرده‌ام که در یک ستون با آرایه نگه داری شده و از دیتابیس پستگرس استفاده می‌شود.این پروژه را در گیت هابم برای شما دوستان عزیز قرار داده ام. در صورت داشتن هرگونه سوال، پیشنهاد و یا انتقادی می‌توانید به من ایمیل بزنید، من سریعا پاسخگو خواهم بود.

برای بررسی پروژه  و سمپل PostgresQL میتوانید از طریق لینک زیر به گیت هاب من متصل شوید:

https://github.com/arsalanmrz/postgresql-json-spring-boot

 

برای دانلود پستگرس به لینک زیر و باینری را انتخاب کنید.

https://www.postgresql.org/download

و مطابق معمول نصب را انجام دهید و پسوردی که اعلام میشود جنریت کنید، برای بخش lock کردن داشبورد میباشد.

 

کتاب Mastering-postgresql 13 ویرایش چهارم هم براتون گذاشتم تا در صورت نیاز مطالعه کنید :

https://mirbozorgi.com/books/postgresql13-mastering.pdf

 

 

ارسال دیدگاه

نوزده − 12 =

این جا قراره با هم زبان برنامه نویسی جاوا رو یاد بگیریم. اگه جواب سوالتو توی مقاله ها پیدا نکردی، میتونی بهم ایمیل بزنی تا راهنماییت کنم. اگر موضوعاتی رو پیشنهاد داری حتما برام بفرست. منتظر ایمیلتم

پیام با موفقیت ثبت شد.
خطایی رخ داده است.