{"id":27094,"date":"2016-12-10T20:55:27","date_gmt":"2016-12-10T18:55:27","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27094"},"modified":"2016-12-10T20:55:27","modified_gmt":"2016-12-10T18:55:27","slug":"taking-the-pain-out-of-mysql-schema-changes","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/10\/taking-the-pain-out-of-mysql-schema-changes\/","title":{"rendered":"Taking the Pain Out of MySQL Schema Changes"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;<a href=\"https:\/\/signalvnoise.com\/posts\/3174-taking-the-pain-out-of-mysql-schema-changes\">Taking the Pain Out of MySQL Schema Changes<\/a>&#8221; covers the following approaches to deploying MySQL schema changes:<\/p>\n<ol>\n<li>Schema Change in Downtime<\/li>\n<li>Role Swap (cluster setup)<\/li>\n<li>pt-online-schema-change<\/li>\n<\/ol>\n<p>The last one is the usage of\u00a0<a href=\"http:\/\/www.percona.com\/doc\/percona-toolkit\/2.1\/pt-online-schema-change.html\">pt-online-schema-change<\/a> tool developed by <a href=\"http:\/\/percona.com\/\">Percona<\/a> guys, as part of their <a href=\"https:\/\/www.percona.com\/software\/database-tools\/percona-toolkit\">Percona Toolkit<\/a> &#8211; an Open Source set of command-line tools for MySQL.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;Taking the Pain Out of MySQL Schema Changes&#8221; covers the following approaches to deploying MySQL schema changes: Schema Change in Downtime Role Swap (cluster setup) pt-online-schema-change The last one is the usage of\u00a0pt-online-schema-change tool developed by Percona guys, as part of their Percona Toolkit &#8211; an Open Source set of command-line tools for MySQL.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Taking the Pain Out of MySQL Schema Changes #databases #MySQL #percona #SysAdmin #WebDev","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,6,18,133,62,1334],"tags":[1559,3066,3468],"keyring_services":[],"class_list":["post-27094","post","type-post","status-publish","format-standard","hentry","category-general","category-linux","category-programming","category-sysadmin","category-technology","category-web-work","tag-databases","tag-mysql","tag-percona"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28186,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/06\/mysql-vs-mariadb-reality-check\/","url_meta":{"origin":27094,"position":0},"title":"MySQL vs. MariaDB: Reality Check","author":"Leonid Mamchenkov","date":"November 6, 2017","format":false,"excerpt":"Percona Database Performance Blog runs this post -\u00a0MySQL vs. MariaDB: Reality Check - comparing the MySQL, MariaDB and the Percona Server for MySQL.\u00a0 I think that most people using MySQL or MariaDB today consider them to be pretty much identical (a fork for legal reasons or something along those lines).\u00a0\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28414,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/26\/top-10-mysql-8-0-features-for-dbas-ops\/","url_meta":{"origin":27094,"position":1},"title":"TOP 10 MySQL 8.0 features for DBAs &#038; OPS","author":"Leonid Mamchenkov","date":"February 26, 2018","format":false,"excerpt":"Here's a list of the TOP 10 MySQL 8.0 features for DBAs and OPS, with some detailed explanations of what they are and links to more information.\u00a0 The features covered are: Temporary Tables Improvements Persistent global variables No more InnoDB System Tables Reclaim UNDO space from large transactions UTF8 performance\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28508,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/20\/mysql-8-0-release\/","url_meta":{"origin":27094,"position":2},"title":"MySQL 8.0 release","author":"Leonid Mamchenkov","date":"April 20, 2018","format":false,"excerpt":"MySQL 8.0 has been released and it brings the following new features, enhancements, and more: SQL\u00a0Window functions, Common Table Expressions, NOWAIT and SKIP LOCKED, Descending Indexes, Grouping, Regular Expressions, Character Sets, Cost Model, and Histograms. JSON\u00a0Extended syntax, new functions, improved sorting, and partial updates. With JSON table functions you can\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":24008,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/04\/27\/schemaspy-graphical-database-schema-metadata-browser\/","url_meta":{"origin":27094,"position":3},"title":"SchemaSpy &#8211; Graphical Database Schema Metadata Browser","author":"Leonid Mamchenkov","date":"April 27, 2015","format":"link","excerpt":"SchemaSpy - Graphical Database Schema Metadata Browser. \u00a0This is a tool written in Java that helps one to generate database schema documentation. \u00a0Have a look at some sample pages. \u00a0Those familiar with Graphviz will immediately realize that the tools is using dot for graphing tables and their relationships. \u00a0Those familiar\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12480,"url":"https:\/\/mamchenkov.net\/wordpress\/2010\/04\/21\/unit-tests-with-cakephp\/","url_meta":{"origin":27094,"position":4},"title":"Unit tests with CakePHP","author":"Leonid Mamchenkov","date":"April 21, 2010","format":false,"excerpt":"I've spent a large part of yesterday setting up the testing environment for a CakePHP project.\u00a0 As always, every time I do something that I have done before, I wanted to do it better, using all the experienced that was acquired previously.\u00a0 And this often leads to the discovery of\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28562,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/database-flow-modern-self-hosted-web-interface-for-sql-and-graphql\/","url_meta":{"origin":27094,"position":5},"title":"Database Flow &#8211; modern, self-hosted web interface for SQL and GraphQL","author":"Leonid Mamchenkov","date":"May 8, 2018","format":false,"excerpt":"Database Flow is a modern, Open Source, self-hosted, web-based tool for working with SQL databases and GraphQL APIs.\u00a0 It supports a variety of the database engines: IBM DB2, Oracle, H2, PostgreSQL, MySQL, SQLite, Informix, and Microsoft SQL Server.\u00a0 It features an advanced SQL editor, query plan analyzer, GraphQL client, schema\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/database-flow-500x281.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=27094"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27094\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27094"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}