پستگرس (postgresql) یک بانک اطلاعاتی متن باز هست که جزو قدرتمندترین بانکهای اطلاعاتی شناخته میشود. این بانک اطلاعاتی از نوع RDBMS و Relational است که در جدولها میتوان از رابطه های one to one / one to many / many to one / many to many استفاده کرد.
متن باز بودن پستگرس باعث شده که خیلی از توابع به آن افزوده شود که این ویژگی باعث میشود این بانک اطلاعاتی روز به روز قویتر از قبل باشد و امکانات جدید تری به آن اضافه شود. نکته مهم این است که پستگرس در سیستم عامل MacOs Server به عنوان دیتابیس پیشفرض شناخته نمیشود.
What you read in this article:
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
- Zendesk
- 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/mirbozorgi-com/mirbozorgi.com-shop-sample
برای دانلود پستگرس به لینک زیر مراجعه کرده و باینری را انتخاب کنید.
https://www.postgresql.org/download/
کتاب Mastering-postgresql 13 ویرایش چهارم هم در لینک زیر قابل مشاهده و دریافت است.
https://mirbozorgi.ir/books/postgresql13-mastering.pdf