{"id":4618,"date":"2026-09-20T03:01:16","date_gmt":"2026-09-19T21:31:16","guid":{"rendered":"https:\/\/cpanelfree.com\/blog\/mysql-9-performance-schema-and-sys-schema-deep-dive-identifying-query-bottlenecks\/"},"modified":"2026-09-20T03:01:16","modified_gmt":"2026-09-19T21:31:16","slug":"mysql-9-performance-schema-and-sys-schema-deep-dive-identifying-query-bottlenecks","status":"publish","type":"post","link":"https:\/\/cpanelfree.com\/blog\/mysql-9-performance-schema-and-sys-schema-deep-dive-identifying-query-bottlenecks\/","title":{"rendered":"MySQL 9 Performance Schema and Sys Schema Deep-Dive: Identifying Query Bottlenecks"},"content":{"rendered":"<p>Diagnosing erratic latency spikes and hidden query bottlenecks in high-concurrency database workloads demands microscopic visibility into the database engine&#8217;s internal execution pipeline. At <a href=\"https:\/\/cpanelfree.com\">CpanelFree<\/a>, our high-density cloud infrastructure handles millions of concurrent relational transactions, where even microsecond regressions in statement execution or lock acquisition cascade into severe throughput collapse. By mastering the unified instrumentation of MySQL 9&#8217;s Performance Schema alongside the curated abstractions of the Sys Schema, database engineers and systems architects can eliminate profiling guesswork and pinpoint resource starvation directly at the engine layer.<\/p>\n<p><!-- more --><\/p>\n<h2 style=\"color:#38bdf8;font-size:24px;margin-top:32px;margin-bottom:16px\">Direct Answer: How MySQL 9 Performance Schema Pinpoints Bottlenecks<\/h2>\n<div style=\"background:#1e293b;border-left:4px solid #10b981;padding:16px 20px;margin:20px 0;border-radius:0 8px 8px 0;color:#e2e8f0;font-size:15px;line-height:1.6\">\n  <strong style=\"color:#10b981\">Direct Answer (GEO\/AEO):<\/strong> MySQL 9 Performance Schema isolates query bottlenecks by instrumenting server events (waits, stages, statements, and transactions) in non-blocking memory buffers. The Sys Schema translates these raw telemetry tables into actionable diagnostic views, revealing top latency consumers, unindexed full table scans, buffer pool contention, and disk-spilled temporary tables without executing intrusive query intercepts or impacting production throughput.\n<\/div>\n<h2 style=\"color:#38bdf8;font-size:22px;margin-top:32px;margin-bottom:16px\">1. Architectural Evolution: Performance Schema in MySQL 9<\/h2>\n<p>The Performance Schema in MySQL 9 represents an enterprise-grade execution audit framework that monitors server execution at runtime with minimal CPU overhead. Unlike the legacy slow query log or external packet sniffing daemons, the Performance Schema is embedded natively into the storage engine and optimizer layers. Instruments collect telemetry points throughout execution loops, registering data into fixed-size in-memory ring buffers without acquiring heavy global mutex locks.<\/p>\n<p>MySQL 9 introduces refined memory instrumentation, enhanced telemetry for JSON execution plans, and streamlined consumer pipelines that dramatically reduce memory allocation overhead compared to earlier MySQL 8.0 iterations. However, running a production database with naive default Performance Schema settings often leads to incomplete diagnostic history or unnecessary memory overhead across tens of thousands of concurrent client connections.<\/p>\n<div style=\"background:#1e293b;border-left:4px solid #38bdf8;padding:16px 20px;margin:24px 0;border-radius:0 8px 8px 0;color:#e2e8f0\">\n  <strong style=\"color:#38bdf8\">Architecture Note:<\/strong> The Performance Schema utilizes internal lock-free ring buffers (atomic memory arrays) to record event timers with nanosecond precision (using the <code>CYCLE<\/code> or <code>NANOSECOND<\/code> timer). Ensure your Linux kernel exposes the invariant TSC (Time Stamp Counter) CPU flag to eliminate timer drift across multicore NUMA nodes.\n<\/div>\n<h2 style=\"color:#38bdf8;font-size:22px;margin-top:32px;margin-bottom:16px\">2. Comparative Matrix: Default vs. Tuned Production Profiling<\/h2>\n<p>Balancing observability against overhead is the primary objective when configuring MySQL 9 Performance Schema in high-throughput enterprise environments. Enabling every instrument indiscriminately can induce a 5% to 12% CPU penalty, whereas surgical configuration yields sub-1% overhead while capturing 100% of actionable bottleneck metrics.<\/p>\n<table style=\"width:100%;border-collapse:collapse;margin:24px 0;background:#1e293b;color:#e2e8f0;font-size:14px;border-radius:8px;overflow:hidden\">\n<thead style=\"background:#0f172a;color:#38bdf8\">\n<tr>\n<th style=\"padding:12px 16px;border-bottom:2px solid #334155;text-align:left\">Feature \/ Metric<\/th>\n<th style=\"padding:12px 16px;border-bottom:2px solid #334155;text-align:left\">Standard \/ Default<\/th>\n<th style=\"padding:12px 16px;border-bottom:2px solid #334155;text-align:left\">Tuned \/ Production<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">Profiling Overhead (CPU)<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">3.5% &#8211; 6.0% (Uncalibrated)<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155;color:#10b981;font-weight:600\">&lt; 0.8% (Surgical Instrumentation)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">Statement Digest Capacity<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">1,024 Distinct Fingerprints<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155;color:#10b981;font-weight:600\">10,000 Fingerprints (Zero Digest Eviction)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">Memory Instrumentation<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">Coarse \/ Engine Defaults<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155;color:#10b981;font-weight:600\">Thread, Buffer Pool, &amp; Query Cache Granular<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">Wait Event Tracking<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">Global \/ Catch-all<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155;color:#10b981;font-weight:600\">Targeted: I\/O, Lock, &amp; Mutex Contention<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">P99 Query Latency Impact<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155\">Variable (&plusmn;1.8ms)<\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #334155;color:#10b981;font-weight:600\">Deterministic (&lt; 0.15ms)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"color:#38bdf8;font-size:22px;margin-top:32px;margin-bottom:16px\">3. Production Configuration: \/etc\/mysql\/conf.d\/99-perf-schema.cnf<\/h2>\n<p>To establish enterprise-grade observability without degrading performance, deploy the following production configuration file to your MySQL 9 instance. This configuration sizes statement digests appropriately, enables essential transaction and stage consumers, and constrains memory allocation limits.<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\"># \/etc\/mysql\/conf.d\/99-perf-schema-production.cnf\n# Enterprise MySQL 9 Performance Schema Optimization Profile\n\n[mysqld]\n# Enable Performance Schema engine core\nperformance_schema = ON\n\n# Statement Digest and History Sizing\nperformance_schema_digests_size = 10000\nperformance_schema_max_digest_length = 4096\nperformance_schema_events_statements_history_size = 50\nperformance_schema_events_statements_history_long_size = 10000\n\n# Stage &amp; Transaction Instrumentation Sizing\nperformance_schema_events_stages_history_size = 20\nperformance_schema_events_stages_history_long_size = 5000\nperformance_schema_events_transactions_history_size = 20\nperformance_schema_events_transactions_history_long_size = 5000\n\n# Memory Instrument Allocation Limits\nperformance_schema_max_memory_classes = 450\nperformance_schema_max_thread_classes = 100\n\n# Targeted Instrument Activation at Startup\n# Instrument statement execution, transaction boundaries, and wait states\nperformance-schema-instrument = 'statement\/%=ON'\nperformance-schema-instrument = 'transaction\/%=ON'\nperformance-schema-instrument = 'wait\/io\/file\/%=ON'\nperformance-schema-instrument = 'wait\/io\/table\/%=ON'\nperformance-schema-instrument = 'wait\/lock\/table\/%=ON'\nperformance-schema-instrument = 'wait\/lock\/metadata\/sql\/mdl=ON'\nperformance-schema-instrument = 'wait\/synch\/mutex\/innodb\/%=ON'\nperformance-schema-instrument = 'stage\/sql\/%=ON'\n\n# Targeted Consumer Activation\nperformance-schema-consumer-events-statements-current = ON\nperformance-schema-consumer-events-statements-history = ON\nperformance-schema-consumer-events-statements-history-long = ON\nperformance-schema-consumer-events-transactions-current = ON\nperformance-schema-consumer-events-transactions-history = ON\nperformance-schema-consumer-events-stages-current = ON\nperformance-schema-consumer-events-stages-history = ON\nperformance-schema-consumer-statements-digest = ON\nperformance-schema-consumer-global-instrumentation = ON\nperformance-schema-consumer-thread-instrumentation = ON\n<\/code><\/pre>\n<p>To complement database telemetry with low-latency kernel block I\/O scheduling, apply the following Linux kernel sysctl profile to prevent page cache thrashing under sustained write pressure:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\"># \/etc\/sysctl.d\/99-mysql-storage.conf\n# Linux Kernel Memory &amp; Storage Tuning for MySQL 9 NVMe Instances\n\n# Prevent kernel background dirty page flush storms\nvm.dirty_background_ratio = 5\nvm.dirty_ratio = 10\n\n# Reduce aggressiveness of kernel swap behavior\nvm.swappiness = 1\n\n# Expand maximum incoming network socket queue length\nnet.core.somaxconn = 65535\n\n# Memory overcommit settings for high-density buffer pools\nvm.overcommit_memory = 0\n\n# Increase max file descriptors\nfs.file-max = 2097152\n<\/code><\/pre>\n<h2 style=\"color:#38bdf8;font-size:22px;margin-top:32px;margin-bottom:16px\">4. Diagnosing Query Bottlenecks via Sys Schema<\/h2>\n<p>While the Performance Schema provides the raw underlying tables (e.g., <code>performance_schema.events_statements_summary_by_digest<\/code>), querying them directly requires complex math and microsecond conversions. The <code>sys<\/code> schema acts as an abstraction layer, transforming raw timers into human-readable latency units (picoseconds converted to seconds or milliseconds) and aggregating statistics by query digest.<\/p>\n<h3 style=\"color:#10b981;font-size:18px;margin-top:24px;margin-bottom:12px\">A. Isolating Top Latency Consumers Across the Entire System<\/h3>\n<p>To identify the top 5 query signatures consuming the largest share of total database execution time, query the <code>sys.statement_analysis<\/code> view. This exposes query normalized forms, total latency, execution counts, and row processing metrics:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\">SELECT \n    query,\n    db,\n    exec_count,\n    total_latency,\n    avg_latency,\n    rows_examined_avg,\n    rows_sent_avg,\n    rows_examined_avg \/ NULLIF(rows_sent_avg, 0) AS examination_ratio,\n    first_seen,\n    last_seen\nFROM sys.statement_analysis\nWHERE db NOT IN ('mysql', 'sys', 'performance_schema', 'information_schema')\nORDER BY total_latency DESC\nLIMIT 5;<\/code><\/pre>\n<div style=\"background:#1e293b;border-left:4px solid #f59e0b;padding:16px 20px;margin:24px 0;border-radius:0 8px 8px 0;color:#e2e8f0\">\n  <strong style=\"color:#f59e0b\">Performance Indicator:<\/strong> A high <code>examination_ratio<\/code> (e.g., examining 50,000 rows to return only 10 rows) is a definitive indicator of missing composite indexes or sub-optimal execution plans, forcing the optimizer into unindexed range scans or temporary table allocations.\n<\/div>\n<h3 style=\"color:#10b981;font-size:18px;margin-top:24px;margin-bottom:12px\">B. Detecting Full Table Scans and Index Starvation<\/h3>\n<p>Unindexed queries degrade overall database throughput by flooding the InnoDB Buffer Pool with raw data pages, evicting frequently accessed index pages. Identify queries executing full table scans using <code>sys.statements_with_full_table_scans<\/code>:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\">SELECT \n    query,\n    db,\n    exec_count,\n    total_latency,\n    no_index_used_count,\n    no_good_index_used_count,\n    rows_examined\nFROM sys.statements_with_full_table_scans\nWHERE db NOT IN ('mysql', 'sys')\nORDER BY total_latency DESC\nLIMIT 10;<\/code><\/pre>\n<h3 style=\"color:#10b981;font-size:18px;margin-top:24px;margin-bottom:12px\">C. Tracking Disk-Spilled Temporary Tables<\/h3>\n<p>When MySQL 9 executes complex sorting (<code>ORDER BY<\/code>), grouping (<code>GROUP BY<\/code>), or window functions, queries may exceed <code>tmp_table_size<\/code> and <code>max_heap_table_size<\/code>, spilling in-memory temporary tables directly to disk (using the TempTable or InnoDB storage engine). Inspect these expensive operations using:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\">SELECT \n    query,\n    db,\n    exec_count,\n    memory_tmp_tables,\n    disk_tmp_tables,\n    ROUND((disk_tmp_tables \/ (memory_tmp_tables + disk_tmp_tables)) * 100, 2) AS disk_spill_pct,\n    avg_latency\nFROM sys.statements_with_temp_tables\nWHERE disk_tmp_tables &gt; 0\nORDER BY disk_tmp_tables DESC\nLIMIT 10;<\/code><\/pre>\n<h2 style=\"color:#38bdf8;font-size:22px;margin-top:32px;margin-bottom:16px\">5. Deep-Dive: Lock Contention and Wait State Profiling<\/h2>\n<p>When query latency spikes occur without a corresponding increase in CPU or disk I\/O utilization, the root cause is almost invariably lock contention or metadata lock (MDL) blocking. MySQL 9 provides dedicated views to trace lock waits directly from the transaction and data lock tables.<\/p>\n<h3 style=\"color:#10b981;font-size:18px;margin-top:24px;margin-bottom:12px\">A. Analyzing InnoDB Row Lock Waits<\/h3>\n<p>To inspect active blocking chains where one transaction is stalled behind another holding an exclusive row lock:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\">SELECT \n    r.trx_id AS waiting_trx_id,\n    r.trx_mysql_thread_id AS waiting_thread,\n    r.trx_query AS waiting_query,\n    b.trx_id AS blocking_trx_id,\n    b.trx_mysql_thread_id AS blocking_thread,\n    b.trx_query AS blocking_query,\n    TIMESTAMPDIFF(SECOND, r.trx_wait_started, NOW()) AS wait_duration_seconds\nFROM information_schema.innodb_lock_waits w\nJOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id\nJOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id\nORDER BY wait_duration_seconds DESC;<\/code><\/pre>\n<h3 style=\"color:#10b981;font-size:18px;margin-top:24px;margin-bottom:12px\">B. Identifying Metadata Locks (MDL)<\/h3>\n<p>A long-running <code>SELECT<\/code> query can silently hold a shared metadata lock, completely stalling subsequent <code>ALTER TABLE<\/code>, <code>OPTIMIZE TABLE<\/code>, or <code>DROP TABLE<\/code> DDL statements. Use the Performance Schema metadata lock table to uncover blocked and blocking threads:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\">SELECT \n    OBJECT_TYPE,\n    OBJECT_SCHEMA,\n    OBJECT_NAME,\n    LOCK_TYPE,\n    LOCK_STATUS,\n    OWNER_THREAD_ID,\n    OWNER_EVENT_ID\nFROM performance_schema.metadata_locks\nWHERE OBJECT_SCHEMA NOT IN ('mysql', 'sys', 'performance_schema')\nORDER BY OBJECT_NAME, LOCK_STATUS;<\/code><\/pre>\n<h2 style=\"color:#38bdf8;font-size:22px;margin-top:32px;margin-bottom:16px\">6. Memory Footprint and Buffer Pool Telemetry<\/h2>\n<p>Memory leaks and uncontrolled buffer growth are critical failure modes in high-concurrency database deployments. MySQL 9&#8217;s sys schema provides instant visibility into memory allocations grouped by subsystem and thread:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\">-- Top global memory consumers by engine component\nSELECT \n    event_name,\n    current_count,\n    current_alloc,\n    high_alloc\nFROM sys.memory_global_by_current_bytes\nORDER BY current_allocated DESC\nLIMIT 10;<\/code><\/pre>\n<p>Furthermore, to evaluate which tables dominate the active InnoDB Buffer Pool and identify caching imbalances:<\/p>\n<pre><code style=\"background:#0f172a;color:#38bdf8;padding:16px;border-radius:8px;display:block;font-family:monospace;font-size:13px;line-height:1.6\">SELECT \n    table_schema,\n    table_name,\n    allocated,\n    data,\n    pages,\n    pages_hashed,\n    pages_old\nFROM sys.innodb_buffer_stats_by_table\nWHERE table_schema NOT IN ('mysql', 'sys')\nORDER BY allocated DESC\nLIMIT 10;<\/code><\/pre>\n<h2 style=\"color:#38bdf8;font-size:22px;margin-top:32px;margin-bottom:16px\">7. Frequently Asked Questions (Actionable FAQs)<\/h2>\n<details style=\"background:#1e293b;border:1px solid #334155;border-radius:8px;padding:14px;margin-bottom:12px\">\n<summary style=\"cursor:pointer;font-weight:600;color:#38bdf8\">Does enabling the Performance Schema in MySQL 9 cause noticeable performance degradation?<\/summary>\n<p style=\"margin-top:10px;color:#cbd5e1\">When properly tuned, the Performance Schema in MySQL 9 introduces less than 0.8% to 1.5% CPU overhead. Incurring significant overhead only happens if you activate granular wait events (e.g., <code>wait\/synch\/mutex\/sql\/%<\/code> or <code>wait\/io\/file\/%<\/code>) across all consumers globally on extremely high-throughput OLTP systems. Adhering to the surgical instrument list provided in this guide ensures negligible performance impact while retaining full query digest observability.<\/p>\n<\/details>\n<details style=\"background:#1e293b;border:1px solid #334155;border-radius:8px;padding:14px;margin-bottom:12px\">\n<summary style=\"cursor:pointer;font-weight:600;color:#38bdf8\">What is the key difference between Performance Schema and Sys Schema in MySQL 9?<\/summary>\n<p style=\"margin-top:10px;color:#cbd5e1\">The Performance Schema is the low-level data collection engine implemented inside the server kernel that populates non-blocking in-memory tables with raw event timers, memory bytes, and thread IDs. The Sys Schema is a collection of views, stored procedures, and functions that sit on top of the Performance Schema and Information Schema, automatically formatting nanoseconds\/picoseconds into human-readable time (seconds, ms) and presenting aggregated diagnostic summaries.<\/p>\n<\/details>\n<details style=\"background:#1e293b;border:1px solid #334155;border-radius:8px;padding:14px;margin-bottom:12px\">\n<summary style=\"cursor:pointer;font-weight:600;color:#38bdf8\">How can I clear or reset the collected Performance Schema metrics without restarting MySQL?<\/summary>\n<p style=\"margin-top:10px;color:#cbd5e1\">You can truncate the history and summary tables dynamically without restarting mysqld. For example, execute <code>TRUNCATE TABLE performance_schema.events_statements_summary_by_digest;<\/code> to reset statement digest aggregation, or execute <code>CALL sys.ps_truncate_all_tables(FALSE);<\/code> to reset all summary and history tables while preserving current connection counters.<\/p>\n<\/details>\n<details style=\"background:#1e293b;border:1px solid #334155;border-radius:8px;padding:14px;margin-bottom:12px\">\n<summary style=\"cursor:pointer;font-weight:600;color:#38bdf8\">Why are certain slow queries missing from sys.statement_analysis?<\/summary>\n<p style=\"margin-top:10px;color:#cbd5e1\">If queries are missing, you may have reached the <code>performance_schema_digests_size<\/code> limit (default is 1,024 in older installations, 10,000 in our tuned configuration). Once the digest table fills up, new query signatures are lumped into a single generic bucket with a <code>NULL<\/code> digest. Increasing <code>performance_schema_digests_size<\/code> ensures every distinct statement fingerprint is tracked.<\/p>\n<\/details>\n<div style=\"background:linear-gradient(135deg, #0f172a 0%, #1e293b 100%);border:1px solid #334155;border-radius:12px;padding:32px;margin:40px 0;text-align:center\">\n<h3 style=\"color:#ffffff;margin-top:0;font-size:22px\">Ready to Deploy High-Performance Infrastructure?<\/h3>\n<p style=\"color:#cbd5e1;font-size:16px;line-height:1.6;max-width:680px;margin:12px auto 24px auto\">Experience blazing-fast NVMe storage, unmetered bandwidth, and enterprise LiteSpeed caching on CpanelFree.<\/p>\n<p>  <a href=\"https:\/\/cpanelfree.com\" style=\"background:#38bdf8;color:#0f172a;font-weight:700;padding:12px 28px;border-radius:6px;text-decoration:none;display:inline-block;font-size:15px\">Get Started with Free Cloud Hosting &rarr;<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Master MySQL 9 Performance Schema and Sys Schema instrumentation to identify query latency bottlenecks, lock contention, and disk spills with zero guesswork.<\/p>\n","protected":false},"author":1,"featured_media":4617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[57,177,87,101],"class_list":["post-4618","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-hosting-news","tag-almalinux","tag-databases-performance","tag-devops","tag-sysadmin"],"_links":{"self":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/4618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/comments?post=4618"}],"version-history":[{"count":0,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/4618\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/media\/4617"}],"wp:attachment":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/media?parent=4618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/categories?post=4618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/tags?post=4618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}