
{"id":4249,"date":"2023-08-16T08:10:59","date_gmt":"2023-08-16T08:10:59","guid":{"rendered":"https:\/\/test.opensource-db.in\/wp1\/?p=4249"},"modified":"2023-11-20T07:39:50","modified_gmt":"2023-11-20T07:39:50","slug":"the-good-doctor-mastering-the-art-of-postgresql-health","status":"publish","type":"post","link":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/","title":{"rendered":"The Good Doctor &#8211; Mastering the Art of PostgreSQL Health"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png\" alt=\"\" class=\"wp-image-4266\" srcset=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png 1024w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-300x158.png 300w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-768x403.png 768w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1536x806.png 1536w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-189x99.png 189w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-152x80.png 152w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-394x207.png 394w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-915x480.png 915w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1240x651.png 1240w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1.png 1800w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-verse\">We're inspired by the compelling and thought-provoking Netflix series \"The Good Doctor\" \r\nIt follows the remarkable journey of Dr. Shaun Murphy, a young surgical resident with autism and savant syndrome. As he navigates the challenges of a prestigious hospital, Shaun's exceptional medical talents collide with societal prejudices and the complexities of interpersonal connections.<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In the world of databases, PostgreSQL stands as a trusted and robust open-source relational database management system. Just like human health, a PostgreSQL database&#8217;s well-being is of utmost importance to ensure smooth operations, optimal performance, and data integrity. In this blog post, we will explore the role of a &#8220;doctor&#8221; for your PostgreSQL database and discuss the key practices that contribute to maintaining its health.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Regular Check-ups and Monitoring<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Similar to routine health check-ups for individuals, PostgreSQL databases require constant monitoring to catch potential issues before they become critical. As a PostgreSQL doctor, your primary responsibility is to set up monitoring tools that keep an eye on various aspects such as disk space usage, query performance, connection counts, and replication status. This proactive approach helps you identify trends and patterns, allowing you to take corrective actions before problems escalate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Check Disk Space Usage for All Tables:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \nschemaname,\ntablename,\npg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) AS size FROM \npg_tables \nORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC \nLIMIT 10;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Longest Running Queries:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \nquery,\ntotal_time \nFROM \npg_stat_statements \nORDER BY total_time DESC \nLIMIT 10;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Query Locks and Blocking Queries:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT blocked_locks.pid AS blocked_pid,\nblocking_locks.pid AS blocking_pid,\nblocked_activity.query AS blocked_query,\nblocking_activity.query AS blocking_query\nFROM \npg_locks blocked_locks\nJOIN \npg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid\nJOIN \npg_locks blocking_locks ON blocking_locks.locktype = blocked_locks.locktype\nAND \nblocking_locks.database IS NOT DISTINCT FROM blocked_locks.database\nAND \nblocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation\nJOIN \npg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid\nWHERE \nblocked_locks.pid != blocking_locks.pid;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Replication Lag and Delay:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \nclient_addr,\nstate,\npg_last_xact_replay_timestamp() - pg_last_xlog_receive_location() AS replication_lag \nFROM \npg_stat_replication;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Checkpoint Activity:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \ncheckpoint_time,\nround(checkpoint_time - lag(checkpoint_time) OVER (ORDER BY checkpoint_time), 2) AS time_since_last_checkpoint \nFROM \npg_stat_bgwriter;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Diagnosing Performance Bottlenecks<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Performance issues can be a headache for both doctors and databases. PostgreSQL provides insightful tools like pg_stat_statements and pg_stat_activity that enable you to identify slow queries, resource-intensive operations, and areas requiring optimization. By diagnosing and addressing these bottlenecks, you ensure your database&#8217;s responsiveness and maintain a healthy performance level.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Identify Queries with High I\/O:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \nquery, \npg_size_pretty(blk_read_time * current_setting('block_size')::bigint) AS read_time,\npg_size_pretty(blk_write_time * current_setting('block_size')::bigint) AS write_time\nFROM \npg_stat_statements\nORDER BY blk_read_time + blk_write_time DESC\nLIMIT 10;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Analyze Temp File Usage:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \nquery,\ntemp_blks_read,\ntmp_blks_written \nFROM \npg_stat_statements \nWHERE \ntemp_blks_read &gt; 0 OR temp_blks_written &gt; 0 \nORDER BY temp_blks_read + temp_blks_written DESC\nLIMIT 10;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Applying Regular Maintenance<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Health maintenance is an ongoing process. PostgreSQL databases benefit from routine maintenance tasks like vacuuming, analyzing, and reindexing. The autovacuum process helps reclaim storage space and optimize the arrangement of data on disk, which prevents performance degradation over time. Regularly updating statistics through the ANALYZE command ensures that the query planner makes informed decisions about query execution plans.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Vacuuming and Analyzing Specific Schemas:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \n'VACUUM ANALYZE public.' || tablename || ';' AS vacuum_analyze_query \nFROM \npg_tables\nWHERE schemaname = 'public';\n\nSELECT pg_stat_reset();  - - Reset stats after vacuum<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimize Autovacuum Thresholds:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE your_table_name SET (autovacuum_vacuum_scale_factor = 0.01);\nALTER TABLE your_table_name SET (autovacuum_analyze_scale_factor = 0.05);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Intensive Vacuum for High Update Tables:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apply an aggressive vacuum on high-update tables to combat bloat.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>VACUUM (FULL, ANALYZE) your_high_update_table_name;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Analyze Specific Tables More Frequently:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schedule frequent automatic analyzes for specific tables to keep statistics fresh.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE your_table_name SET (autovacuum_analyze_scale_factor = 0);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reindex with Concurrently:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>REINDEX INDEX CONCURRENTLY your_index_name;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Check Indexes Needing Reindexing:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Identify indexes that require reindexing based on fragmentation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT \nschemaname,\nindexname,\npg_size_pretty(pg_total_relation_size(indexrelid)) AS index_size \nFROM \npg_stat_user_indexes\nWHERE\nidx_scan = 0 \nORDER BY pg_total_relation_size(indexrelid) DESC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reset Statistics and Activity Counters:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reset both system statistics and query activity counters for accurate tracking.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT pg_stat_reset();\nSELECT pg_stat_reset_shared('bgwriter');<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Backup and Disaster Recovery Plans<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No doctor would leave their patient unprepared for emergencies, and the same applies to databases. As a PostgreSQL doctor, you must devise robust backup and disaster recovery plans. Implement regular backups, test their restore processes, and consider setting up point-in-time recovery options. This guarantees that in the event of data loss or corruption, your database can be swiftly restored to a healthy state.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Security Measures<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Patient confidentiality is a priority in healthcare, just as data security is in databases. Safeguarding sensitive information stored in PostgreSQL databases is vital. Implement proper authentication and authorization mechanisms, use SSL\/TLS for encrypted connections, and keep your PostgreSQL instance up to date with security patches. A secure database environment is essential for its overall health.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Implement Strong Authentication:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set strong authentication mechanisms using pg_hba.conf <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>hostssl  \tall     all     0.0.0.0\/0     cert clientcert=1\nhostnossl  \tall     all     0.0.0.0\/0     scram-sha-256<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Configure PostgreSQL for SSL\/TLS encryption: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; In postgresql.conf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssl = on\nssl_cert_file = '\/path\/to\/server.crt'\nssl_key_file = '\/path\/to\/server.key'\nssl_ca_file = '\/path\/to\/root.crt'\nssl_ciphers = 'HIGH:!aNULL:!MD5'\nssl_prefer_server_ciphers = on\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Implement Role-Based Access Control (RBAC):<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apply fine-grained access control with roles and privileges:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Create roles<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE ROLE doctor LOGIN PASSWORD 'securepassword';\nGRANT doctor TO admin;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Grant privileges<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT SELECT, INSERT, UPDATE, DELETE ON medical_records TO doctor;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Use Row-Level Security (RLS):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enforce data access policies at the row level:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Enable RLS<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE medical_records ENABLE ROW LEVEL SECURITY;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212; Create security policy<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE POLICY restrict_confidentiality ON medical_records FOR ALL USING (doctor_id = current_user);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Enable Database Auditing:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\naudit_logging = 'on'\naudit_directory = '\/path\/to\/audit_logs'\naudit_trail = 'on'\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Frequent Security Patching:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># Apply PostgreSQL updates<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt upgrade postgresql\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Probing into Bloat, unused Indexes and Dead Rows<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Analyze table bloat and unproductive rows. Through insightful queries, pinpoint tables requiring optimization. Your in-depth understanding enhances both performance and resource utilization.<br>PostgreSQL trusted extensions are a toolkit for diagnosing, optimizing, and nurturing the well-being of your database environment, making you a proficient &#8216;doctor&#8217; of PostgreSQL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Becoming a proficient PostgreSQL doctor requires a combination of skills, vigilance, and dedication. By diligently monitoring, diagnosing, optimizing queries, performing maintenance tasks, and ensuring security, you contribute to the long-term health and optimal performance of PostgreSQL databases. Just as doctors play a critical role in keeping us healthy, your role as a PostgreSQL doctor ensures that data remains accessible, responsive, and reliable. So, put on your &#8220;white coat,&#8221; follow these practices, and nurture your PostgreSQL databases to lead a long and healthy tenure.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re inspired by the compelling and thought-provoking Netflix series &#8220;The Good Doctor&#8221; It follows the remarkable journey of Dr. Shaun [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[23,42],"tags":[34,37],"class_list":["post-4249","post","type-post","status-publish","format-standard","hentry","category-postgresql-14","category-postgresql-15","tag-dba","tag-postgres"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Good Doctor - Mastering the Art of PostgreSQL Health - OpenSource DB<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Good Doctor - Mastering the Art of PostgreSQL Health - OpenSource DB\" \/>\n<meta property=\"og:description\" content=\"We&#039;re inspired by the compelling and thought-provoking Netflix series &quot;The Good Doctor&quot; It follows the remarkable journey of Dr. Shaun [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/\" \/>\n<meta property=\"og:site_name\" content=\"OpenSource DB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-16T08:10:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-20T07:39:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png\" \/>\n<meta name=\"author\" content=\"Taraka Vuyyuru\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:site\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Taraka Vuyyuru\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/\"},\"author\":{\"name\":\"Taraka Vuyyuru\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/55546e9ca9552218b9376d4ecc8447a5\"},\"headline\":\"The Good Doctor &#8211; Mastering the Art of PostgreSQL Health\",\"datePublished\":\"2023-08-16T08:10:59+00:00\",\"dateModified\":\"2023-11-20T07:39:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/\"},\"wordCount\":702,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png\",\"keywords\":[\"dba\",\"postgres\"],\"articleSection\":[\"PostgreSQL 14\",\"PostgreSQL 15\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/\",\"name\":\"The Good Doctor - Mastering the Art of PostgreSQL Health - OpenSource DB\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png\",\"datePublished\":\"2023-08-16T08:10:59+00:00\",\"dateModified\":\"2023-11-20T07:39:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1.png\",\"width\":1800,\"height\":945},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.opensource-db.in\/wp1\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Good Doctor &#8211; Mastering the Art of PostgreSQL Health\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"name\":\"OpenSource DB\",\"description\":\"Your Trusted OpenSource Databases partner\",\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\",\"name\":\"OPENSOURCE DB PRIVATE LIMITED\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"width\":368,\"height\":120,\"caption\":\"OPENSOURCE DB PRIVATE LIMITED\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\",\"https:\/\/x.com\/opensource_db\",\"https:\/\/www.youtube.com\/channel\/UCmTI5h\",\"https:\/\/www.linkedin.com\/company\/opensource-db\",\"https:\/\/www.instagram.com\/opensource_db\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/55546e9ca9552218b9376d4ecc8447a5\",\"name\":\"Taraka Vuyyuru\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/54256c344d6c1f7dbb87fa257d6e318d1ddcd0a29320b642116bfa20e693616b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/54256c344d6c1f7dbb87fa257d6e318d1ddcd0a29320b642116bfa20e693616b?s=96&d=mm&r=g\",\"caption\":\"Taraka Vuyyuru\"},\"url\":\"https:\/\/test.opensource-db.in\/wp1\/author\/taraka\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Good Doctor - Mastering the Art of PostgreSQL Health - OpenSource DB","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"The Good Doctor - Mastering the Art of PostgreSQL Health - OpenSource DB","og_description":"We're inspired by the compelling and thought-provoking Netflix series \"The Good Doctor\" It follows the remarkable journey of Dr. Shaun [&hellip;]","og_url":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/","og_site_name":"OpenSource DB","article_publisher":"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","article_published_time":"2023-08-16T08:10:59+00:00","article_modified_time":"2023-11-20T07:39:50+00:00","og_image":[{"url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png","type":"","width":"","height":""}],"author":"Taraka Vuyyuru","twitter_card":"summary_large_image","twitter_creator":"@opensource_db","twitter_site":"@opensource_db","twitter_misc":{"Written by":"Taraka Vuyyuru","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#article","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/"},"author":{"name":"Taraka Vuyyuru","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/55546e9ca9552218b9376d4ecc8447a5"},"headline":"The Good Doctor &#8211; Mastering the Art of PostgreSQL Health","datePublished":"2023-08-16T08:10:59+00:00","dateModified":"2023-11-20T07:39:50+00:00","mainEntityOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/"},"wordCount":702,"commentCount":0,"publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png","keywords":["dba","postgres"],"articleSection":["PostgreSQL 14","PostgreSQL 15"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/","url":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/","name":"The Good Doctor - Mastering the Art of PostgreSQL Health - OpenSource DB","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#website"},"primaryImageOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1-1024x538.png","datePublished":"2023-08-16T08:10:59+00:00","dateModified":"2023-11-20T07:39:50+00:00","breadcrumb":{"@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#primaryimage","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/08\/image-2-1.png","width":1800,"height":945},{"@type":"BreadcrumbList","@id":"https:\/\/test.opensource-db.in\/wp1\/the-good-doctor-mastering-the-art-of-postgresql-health\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.opensource-db.in\/wp1\/"},{"@type":"ListItem","position":2,"name":"The Good Doctor &#8211; Mastering the Art of PostgreSQL Health"}]},{"@type":"WebSite","@id":"https:\/\/test.opensource-db.in\/wp1\/#website","url":"https:\/\/test.opensource-db.in\/wp1\/","name":"OpenSource DB","description":"Your Trusted OpenSource Databases partner","publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/test.opensource-db.in\/wp1\/#organization","name":"OPENSOURCE DB PRIVATE LIMITED","url":"https:\/\/test.opensource-db.in\/wp1\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","width":368,"height":120,"caption":"OPENSOURCE DB PRIVATE LIMITED"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","https:\/\/x.com\/opensource_db","https:\/\/www.youtube.com\/channel\/UCmTI5h","https:\/\/www.linkedin.com\/company\/opensource-db","https:\/\/www.instagram.com\/opensource_db\/"]},{"@type":"Person","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/55546e9ca9552218b9376d4ecc8447a5","name":"Taraka Vuyyuru","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/54256c344d6c1f7dbb87fa257d6e318d1ddcd0a29320b642116bfa20e693616b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/54256c344d6c1f7dbb87fa257d6e318d1ddcd0a29320b642116bfa20e693616b?s=96&d=mm&r=g","caption":"Taraka Vuyyuru"},"url":"https:\/\/test.opensource-db.in\/wp1\/author\/taraka\/"}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"Taraka Vuyyuru","author_link":"https:\/\/test.opensource-db.in\/wp1\/author\/taraka\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-14\/\" rel=\"category tag\">PostgreSQL 14<\/a> <a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-15\/\" rel=\"category tag\">PostgreSQL 15<\/a>","rttpg_excerpt":"We're inspired by the compelling and thought-provoking Netflix series \"The Good Doctor\" It follows the remarkable journey of Dr. Shaun [&hellip;]","_links":{"self":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/comments?post=4249"}],"version-history":[{"count":7,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4249\/revisions"}],"predecessor-version":[{"id":4268,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4249\/revisions\/4268"}],"wp:attachment":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media?parent=4249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/categories?post=4249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/tags?post=4249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}