PostgreSQL
PostgreSQL را از ابتدا تا انتها یاد بگیرید. مبانی SQL، جوینها، ایندکسها، تراکنشها، JSONB، EXPLAIN و طراحی اسکیما.
14 درس، به ترتیب
- 120 دقیقه
PostgreSQL چیست
فرض کنید مشتریها، سفارشها و محصولهای یک مغازهی کوچک را در یک صفحهگسترده نگه میدارید. تا جایی خوب کار میکند: تا وقتی که دو نفر همزمان بخواهند...
Relational databaseACIDMVCCPostgres vs MySQL vs SQLiteWhere Postgres shines - 225 دقیقه
psql و اولین دستورات
حالا میدانید Postgres به چه درد میخورد. مسئلهی بعدی عملیتر است: چطور واقعاً با آن حرف بزنید؟ یک سرور Postgres در حال اجرا فقط همانجا نشسته و به...
Psql command line clientConnecting as postgres userMeta commands like \l \c \dt \d \qSemicolons end statementsMultiline queriesSELECT version() - 330 دقیقه
ایجاد پایگاههای داده و جداول
تا اینجا فقط سرویسی را گشتهاید که کس دیگری راه انداخته بود. برای یاد گرفتن ابزارها اشکالی ندارد، اما در یک پروژه واقعی شما را به جایی نمیرساند: به...
CREATE DATABASECREATE TABLEPRIMARY KEYNOT NULLDEFAULTDROP TABLE+1 - 425 دقیقه
انواع داده
هر ستونی که تا اینجا ساختهاید نوعی به خود چسبانده داشته، TEXT، SERIAL، TIMESTAMPTZ، بدون اینکه توضیح چندانی داده شود چرا این نوع و نه نوعی دیگر....
Integer and bigintNumeric vs floatText and varcharBooleanTimestamptz vs timestampDate+3 - 530 دقیقه
SELECT و WHERE
جدولی دارید با چند هزار سطر و به هفتتایشان نیاز دارید. نه همهشان، نه صد تای اول، همان هفت سطری که با قاعدهای در ذهن شما جور درمیآیند: ماه گذشته...
SELECT specific columnsWHERE with AND ORBETWEENINLIKE and ILIKEIS NULL+2 - 635 دقیقه
جوینها (joins)
دادههای شما در یک جدول نیستند، و نباید هم باشند. کاربران در users زندگی میکنند، پستهایشان در posts، و تنها چیزی که یک پست را به نویسندهاش گره...
INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOINSelf joinUSING vs ON - 730 دقیقه
تجمیعها و گروهبندی
یک نفر از شما میپرسد فروشگاه ماه گذشته چطور بوده است. او چهار هزار سطر سفارش نمیخواهد. یک عدد میخواهد، یا شاید یک عدد به ازای هر مشتری، و اگر...
COUNTSUMAVGMINMAXGROUP BY+3 - 835 دقیقه
ایندکسها (indexes)
کوئری روی لپتاپ شما با دویست سطر آزمایشی بیعیب کار میکرد. در محیط عملیاتی، روی چهار میلیون سطر، همان کوئری یازده ثانیه طول میکشد و صفحه منقضی...
B-tree defaultCREATE INDEXMulti-column indexPartial index WHERE activeUnique indexWrite cost+1 - 935 دقیقه
تراکنشها (transactions) و ایزولاسیون (isolation)
دو دستور UPDATE پول را از آلیس به باب منتقل میکنند. اولی اجرا میشود، اتصال قطع میشود، دومی هرگز اتفاق نمیافتد، و سی پوند بهسادگی از هستی ساقط...
BEGIN COMMIT ROLLBACKSavepointsREAD COMMITTED defaultREPEATABLE READSERIALIZABLEDirty read non-repeatable read phantom read serialization anomaly - 1035 دقیقه
توابع (functions) و تریگرها (triggers)
هر جدولی در اسکیمای شما ستون updated_at دارد، و مقدار همهشان اشتباه است. نه همیشه، فقط در همان مسیرهایی از کد که کسی یادش رفته آن را تنظیم کند:...
CREATE FUNCTIONLANGUAGE plpgsqlRETURNSCREATE TRIGGERBEFORE UPDATENEW and OLD+1 - 1135 دقیقه
JSONB و آرایهها
بعضی دادهها حاضر نیستند سر جایشان در ستونها بنشینند. جدول محصولاتی را تصور کنید که لپتاپها اندازهی رم دارند، کیبوردها نوع سوئیچ و مانیتورها...
JSONB column-> operator->> operator@> contains operatorGIN index on jsonbText[] and integer[] arrays+2 - 1235 دقیقه
EXPLAIN و تنظیم کوئری
صفحهای که قبلا آنی بالا میآمد حالا نه ثانیه طول میکشد، و غریزه آدم این است که شروع کند به حدس زدن. اینجا یک ایندکس اضافه کن. آن join را بازنویسی...
EXPLAINEXPLAIN ANALYZESeq scan vs index scan vs index-only scanFixing a missing indexPg_stat_statements overview - 1325 دقیقه
پشتیبانگیری و بازیابی
کار شبانه هشت ماه است هر شب فایلی روی دیسک مینویسد و هیچکس تا حالا بازش نکرده. آن پشتیبان نیست، فقط فایلی است که به آن امید بستهاید. یک پشتیبان...
Pg_dump custom formatPg_restorePlain SQL dumpsPoint-in-time recovery overview - 1460 دقیقه
پروژه نهایی: طراحی یک اسکیما
هر درسی تا اینجا جدولی به شما داد و خواست روی آن کوئری بزنید. کار واقعی برعکس است: کسی محصولی را توصیف میکند و شما باید تصمیم بگیرید جدولها...
Schema designPrimary and foreign keysIndexes on hot columnsUpdated_at triggerJSONB metadataJoins with aggregates+1
PostgreSQL را به زبان خودت یاد بگیر
هر درس، آزمون و پاسخ مربی به زبان شما نمایش داده میشود. مربی هوشمند به همان زبانی پاسخ میدهد که شما سوال میکنید.
Roles that use PostgreSQL
See how hiring teams interview engineers on PostgreSQL, in production-like environments.
Database Administrator (DBA)
Hire DBAs in real workspaces with PostgreSQL or MySQL, real replication lag, real slow queries and real backups to restore. Live or take-home.
See the interviewBackend Engineer (Go, Rust, Java)
Hire backend engineers in real services with real databases, real concurrency and real latency budgets. Live or take-home, fully recorded.
See the interviewData Engineer
Hire data engineers in workspaces with real Spark, dbt and Airflow pipelines. Schema drift, bad data and reruns included.
See the interview