{"id":208880,"date":"2021-03-23T16:00:59","date_gmt":"2021-03-23T13:00:59","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-analyse-mysql-performance-problems-cloudsavvy-it\/"},"modified":"2021-03-23T16:00:59","modified_gmt":"2021-03-23T13:00:59","slug":"how-to-analyse-mysql-performance-problems-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-analyse-mysql-performance-problems-cloudsavvy-it\/","title":{"rendered":"#How to Analyse MySQL Performance Problems \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a3ac44550af4\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a3ac44550af4\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-analyse-mysql-performance-problems-cloudsavvy-it\/#Tackling_Server_Load\" >Tackling Server Load<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-analyse-mysql-performance-problems-cloudsavvy-it\/#Customizing_Buffer_Sizes\" >Customizing Buffer Sizes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-analyse-mysql-performance-problems-cloudsavvy-it\/#Analyzing_Slow_Queries\" >Analyzing Slow Queries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-analyse-mysql-performance-problems-cloudsavvy-it\/#The_Role_of_Indexes\" >The Role of Indexes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-analyse-mysql-performance-problems-cloudsavvy-it\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How to Analyse MySQL Performance Problems \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4058\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/42e674981d86face4b1d85899021efe5\/p\/uploads\/2017\/07\/ee83c456.png\" alt=\"MySQL Logo\" width=\"1400\" height=\"600\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Facing excessive MySQL server load, or noticing some queries take too long to run? Here\u2019s how to start when investigating MySQL performance problems.<\/p>\n<p>Before beginning, you should be aware that each server and data set comes with its own performance challenges. This article aims to provide <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/general\/\" data-internallinksmanager029f6b8e52c=\"3\" title=\"General\" target=\"_blank\" rel=\"noopener\">general<\/a> guidance on how to check your server configuration and individual queries for lurking issues.<\/p>\n<h2 id=\"tackling-server-load\"><span class=\"ez-toc-section\" id=\"Tackling_Server_Load\"><\/span>Tackling Server Load<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The most obvious indication that something\u2019s wrong often stems from a general slowdown. If you\u2019re seeing sustained periods of high-resource utilization, tweaking MySQL\u2019s configuration file might lead to more optimal settings.<\/p>\n<p>A good place to start is to run <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/major\/MySQLTuner-perl\">MySQLTuner<\/a>. This <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">script<\/a> automatically assesses your MySQL server against 300 possible performance indicators. It\u2019ll produce a list of suggestions that could help you get more from your environment.<\/p>\n<p>MySQLTuner is distributed as a Perl script, so you\u2019ll need Perl installed on your system. Use the following commands to download and run MySQLTuner:<\/p>\n<pre>wget http:\/\/mysqltuner.pl\/ -O mysqltuner.pl&#13;\nchmod +x mysqltuner.pl&#13;\n.\/mysqltuner.pl --host 127.0.0.1 --username root --pass mysql-password<\/pre>\n<p>The connection syntax is similar to the <code>mysql<\/code> command-line client. You should connect as the <code>root<\/code> user so that the script has full access to your server.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10278\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/8b3cd038ff9cd1b15efb4e670bb857a8\/p\/uploads\/2021\/03\/778062af.jpg\" alt=\"\" width=\"1430\" height=\"481\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>MySQLTuner is helpful because its assessment is based on <em>your<\/em> server hosting <em>your<\/em> data set. Nonetheless, the output is merely suggestive\u2014not every recommendation will have an impact, and some could actually reduce performance.<\/p>\n<p>MySQLTuner is a purely read-only script. It will not make any changes to your server\u2019s settings. If you accept a suggestion, you must manually update the indicated variable in your MySQL configuration file. The location of this file varies by operating system distribution. Common locations include <code>\/etc\/mysql\/my.cnf<\/code> and <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code>.<\/p>\n<p>After changing a variable, restart the MySQL server:<\/p>\n<pre>sudo \/etc\/init.d\/mysql restart<\/pre>\n<p>You should now leave the server to run normally for a while. You can then run MySQLTuner again to reevaluate the server performance. It might suggest another change to the same variable. Keep making changes, but be sure to balance all the settings. You won\u2019t necessarily be able to set every variable to its suggested value without new suggestions appearing. MySQLTuner\u2019s output advises leaving the server to run for 24 hours to get accurate assessment data.<\/p>\n<h2 id=\"customising-buffer-sizes\"><span class=\"ez-toc-section\" id=\"Customizing_Buffer_Sizes\"><\/span>Customizing Buffer Sizes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Changing buffer and cache sizes can deliver a marked performance improvement. MySQL defaults to relatively small buffer sizes, which won\u2019t work well for larger workloads. Values are written in the MySQL configuration file using <code>K<\/code>, <code>M<\/code>, or <code>G<\/code> to indicate the storage unit (e.g.\u00a0<code>512M<\/code> means 512 megabytes).<\/p>\n<ul>\n<li><strong><code>innodb_buffer_pool_size<\/code><\/strong>\u00a0: As a rule of thumb, this is usually set to 70-80% of your available memory. It defines the size of the pool used to buffer queries to InnoDB tables. Try to make this at least as large as the total size of your data set, provided that you have sufficient memory available.<\/li>\n<li><strong><code>innodb_buffer_pool_instances<\/code><\/strong>\u00a0: A value between 1 and 64, defining the number of InnoDB buffer pools to operate. Each page stored in the buffer pool is randomly assigned to one of the instances. A larger number of instances can improve concurrency.<\/li>\n<li><strong><code>innodb_log_file_size<\/code><\/strong>\u00a0: Maximum size of <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-redo-log.html\">redo log files<\/a> in a log group. These files are used during crash recovery to restore incomplete transactions. Larger values improve performance but cause an increased recovery time in the event of a crash.<\/li>\n<li><strong><code>key_buffer_size<\/code><\/strong>\u00a0: This is similar to <code>innodb_buffer_pool_size<\/code> but is used for MyISAM tables. Note that if you\u2019re exclusively using either MyISAM or InnoDB tables, you should set the relevant variable accordingly and change the other to a relatively low size, such as <code>32M<\/code>. Otherwise, you\u2019d be wasting RAM by provisioning a large buffer space for an unused table type.<\/li>\n<li><strong><code>join_buffer_size<\/code><\/strong>\u00a0: This sets the size of the buffer used for joins without indexes. Increasing the size of this buffer will accelerate queries, which use unindexed joins. Setting it too high can lead to memory issues, as a join buffer is allocated for each full join between tables. Complex joins between multiple tables will need multiple buffers, each of <code>join_buffer_size<\/code> capacity, which can quickly consume a lot of RAM. The default value is <code>256K<\/code>.<\/li>\n<li><strong><code>sort_buffer_size<\/code><\/strong>\u00a0: Like <code>join_buffer_size<\/code>\u00a0, but applicable to <em>sorting<\/em> operations using <code>filesort<\/code>. Higher values can accelerate the sorting of large result sets, but risk increasing memory usage on a highly active server.<\/li>\n<\/ul>\n<p>You should always assess any changes against the size of your data set and your server\u2019s hardware resources. Setting these values too low will impact query performance, while conversely, setting them too high could lead to excessive memory usage or even memory exhaustion. MySQLTuner will issue warnings if your configuration is at risk of consuming all available system memory.<\/p>\n<h2 id=\"analysing-slow-queries\"><span class=\"ez-toc-section\" id=\"Analyzing_Slow_Queries\"><\/span>Analyzing Slow Queries<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Enabling the slow query log gives you insight into poorly performing queries. You can do this from a MySQL shell session:<\/p>\n<pre>sudo mysql&#13;\nSET GLOBAL slow_query_on = \"On\";&#13;\nSET GLOBAL slow_query_log_file = \"\/slow-query.log\";&#13;\nSET GLOBAL long_query_time = 5;<\/pre>\n<p>This configuration will log any queries that take longer than five seconds to run into <code>\/slow-query.log<\/code>. Examine this file periodically to identify long-running queries.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10279\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/811339c6623510750bd7dfe87127adaf\/p\/uploads\/2021\/03\/e7d21c6c.jpg\" alt=\"\" width=\"1735\" height=\"211\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Once you\u2019ve found a problematic query, you can use an <code>EXPLAIN<\/code> statement to get insight into what\u2019s causing the slowdown. Prefix the query with <code>EXPLAIN<\/code> and run the command in a MySQL shell. You\u2019ll <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/explain.html\">get tabulated output<\/a> showing how MySQL plans to execute the query.<\/p>\n<p>The <code>EXPLAIN<\/code> output includes information on the indexes available, the keys used, and the number of records assessed. Interpreting <code>EXPLAIN<\/code> data is a topic unto itself. Detailed guidance on the meaning of each field is available in the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/explain-output.html\">MySQL documentation<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10280\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/79c228fc7ebff7feae547de4782c9452\/p\/uploads\/2021\/03\/e7b2af5a.jpg\" alt=\"\" width=\"960\" height=\"540\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>It can be easier to use MySQL Workbench to execute an <code>EXPLAIN<\/code> graphically. This can help you visualize the database engine\u2019s approach to fetching the result set. Within MySQL Workbench, press Ctrl+T to open a new query tab. Write your query and press Ctrl+Alt+X to execute it as an <code>EXPLAIN<\/code> (You don\u2019t need to add the <code>EXPLAIN<\/code> prefix manually.). In the results pane, you\u2019ll see the visual execution plan highlighting the operations involved.<\/p>\n<h2 id=\"the-role-of-indexes\"><span class=\"ez-toc-section\" id=\"The_Role_of_Indexes\"><\/span>The Role of Indexes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>It\u2019s important to ensure that your data set contains appropriate indexes. Correct use of indexes substantially increases query performance.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"sql\">\n<pre class=\"de1\"><span class=\"kw1\">SELECT<\/span> <span class=\"sy0\">*<\/span> <span class=\"kw1\">FROM<\/span> users <span class=\"kw1\">WHERE<\/span> Email <span class=\"sy0\">=<\/span> <span class=\"st0\">'example@example.com'<\/span>;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>This query should have an index on the <code>users.Email<\/code> field. Without an index, MySQL would need to conduct a Full-Table Scan, causing a slow examination of every record.<\/p>\n<p>With the index, the database engine is able to identify records much more quickly. It does this by creating a new data structure that holds the field\u2019s value and a pointer to the source record. The pointers can then be sorted so that MySQL can jump straight to relevant data.<\/p>\n<p>To add an index to an existing field, use the <code>ADD INDEX<\/code> statement with <code>ALTER TABLE<\/code>:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"sql\">\n<pre class=\"de1\"><span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> my_table <span class=\"kw1\">ADD<\/span> <span class=\"kw1\">INDEX<\/span> my_index <span class=\"br0\">(<\/span>my_field<span class=\"br0\">)<\/span>;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>You should then run <code>OPTIMIZE TABLE my_table<\/code> to index the existing data and recompute query statistics.<\/p>\n<p>When you\u2019re working with multiple fields, you can create a <em>covering index<\/em>. This is one index that incorporates all of the fields.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"sql\">\n<pre class=\"de1\"><span class=\"kw1\">SELECT<\/span> <span class=\"sy0\">*<\/span> <span class=\"kw1\">FROM<\/span> my_table <span class=\"kw1\">WHERE<\/span> x <span class=\"sy0\">=<\/span> <span class=\"nu0\">1<\/span> <span class=\"kw1\">AND<\/span> y <span class=\"sy0\">=<\/span> <span class=\"nu0\">2<\/span> <span class=\"kw1\">ORDER<\/span> <span class=\"kw1\">BY<\/span> z;\n\u00a0\n<span class=\"kw1\">ALTER<\/span> <span class=\"kw1\">TABLE<\/span> my_table <span class=\"kw1\">ADD<\/span> <span class=\"kw1\">INDEX<\/span> covering_index <span class=\"br0\">(<\/span>x<span class=\"sy0\">,<\/span> y<span class=\"sy0\">,<\/span> z<span class=\"br0\">)<\/span>;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>When using covering indexes, the order of fields matters. If you queried <code>WHERE z = 1 ORDER BY x<\/code>, the index created above would not be used.<\/p>\n<p>You should make sure that fields used in <code>WHERE<\/code> or <code>JOIN ... ON<\/code> clauses are covered by an index. Querying unindexed fields can quickly become a performance bottleneck. Be wary of indexing <em>every<\/em> field though\u2014if you\u2019ll never query that field, the index is an unnecessary <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/optimization-indexes.html\">overhead that<\/a> must still be maintained by MySQL.<\/p>\n<p>You can identify queries that would benefit from an index by enabling the unindexed queries log. Follow the directions above to enable the slow query log. You should then run <code>SET GLOBAL log_queries_not_using_indexes = \"On\"<\/code> from a MySQL shell. This will start logging queries with missing indexes into the slow query log. Unindexed queries will be included even if they don\u2019t exceed the configured slow query time.<\/p>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>There\u2019s no one-size-fits-all approach to improving MySQL performance. The steps you\u2019ll need to take will depend on your server\u2019s resources, the size of your data set, and the level of resource contention caused by other workloads running on the machine.<\/p>\n<p>You shouldn\u2019t overlook your application layer either\u2014it may not be MySQL that\u2019s the root of your performance problems. Inspect the way in which your code makes queries. If there\u2019s excessive looping, such as using a query in an N+1 routine, refactoring that code might be much more impactful than micromanaging your MySQL server.\n<\/p><\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/10275\/how-to-analyse-mysql-performance-problems\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How to Analyse MySQL Performance Problems \u2013 CloudSavvy IT&#8221; Facing excessive MySQL server load, or noticing some queries take too long to run? Here\u2019s how to start when investigating MySQL performance problems. Before beginning, you should be aware that each server and data set comes with its own performance challenges. This article aims to provide&#8230;<\/p>\n","protected":false},"author":1,"featured_media":208881,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2017\/07\/ee83c456.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-208880","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/208880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=208880"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/208880\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/208881"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=208880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=208880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=208880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}