<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: MySQL Schema Synchronization and GUI Tools</title>
	<atom:link href="http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/</link>
	<description>News and views from Pythian DBAs</description>
	<lastBuildDate>Fri, 10 Feb 2012 13:01:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>By: Diamond Notes &#187; MySQL Schema Synchronization and GUI Tools</title>
		<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/#comment-295979</link>
		<dc:creator>Diamond Notes &#187; MySQL Schema Synchronization and GUI Tools</dc:creator>
		<pubDate>Fri, 31 Oct 2008 17:53:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/1301/mysql-schema-synchronization-and-gui-tools#comment-295979</guid>
		<description>[...] SELECT CONCAT(&quot;mysql -u root -pPASS &quot;, TABLE_SCHEMA, &quot; -e &#039;ALTER TABLE &quot;, TABLE_NAME, &quot; ENGINE=MYISAM;&#039; &amp; &quot;) FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE=&#039;INNODB&#039;; Again, the output can be put in a batch file, modified a little, and run in parallel. Once everything was converted to MyISAM, I shut down the database and removed the InnoDB log and data files and modified the my.cnf to so I had file_per_table and a much smaller InnoDB data file. That was the fairly straightforward part. Now the fun began. (moreâ€¦) [...]</description>
		<content:encoded><![CDATA[<p>[...] SELECT CONCAT(&#8220;mysql -u root -pPASS &#8220;, TABLE_SCHEMA, &#8221; -e &#8216;ALTER TABLE &#8220;, TABLE_NAME, &#8221; ENGINE=MYISAM;&#8217; &amp; &#8220;) FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE=&#8217;INNODB&#8217;; Again, the output can be put in a batch file, modified a little, and run in parallel. Once everything was converted to MyISAM, I shut down the database and removed the InnoDB log and data files and modified the my.cnf to so I had file_per_table and a much smaller InnoDB data file. That was the fairly straightforward part. Now the fun began. (moreâ€¦) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keith Murphy</title>
		<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/#comment-294885</link>
		<dc:creator>Keith Murphy</dc:creator>
		<pubDate>Mon, 27 Oct 2008 21:49:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/1301/mysql-schema-synchronization-and-gui-tools#comment-294885</guid>
		<description>Tom,

The OSS version does the reverse engineering also.</description>
		<content:encoded><![CDATA[<p>Tom,</p>
<p>The OSS version does the reverse engineering also.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sheeri Cabral</title>
		<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/#comment-293110</link>
		<dc:creator>Sheeri Cabral</dc:creator>
		<pubDate>Thu, 23 Oct 2008 13:30:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/1301/mysql-schema-synchronization-and-gui-tools#comment-293110</guid>
		<description>Arjen -- that&#039;s what we tried first, but unfortunately if the table is referenced as a foreign key in another table, you can&#039;t convert it to MyISAM:

http://bugs.mysql.com/bug.php?id=12555

That is, if tbl1 references tbl2, you can&#039;t convert tbl2 to MyISAM.  You can alter tbl1 first, and then tbl2.

Andrii -- it works just fine, however the problems is that you then still have the large ibdata files -- which are now wasted, because most of the 352G in the ibdata files are now fragmented space, which cannot be recovered.</description>
		<content:encoded><![CDATA[<p>Arjen &#8212; that&#8217;s what we tried first, but unfortunately if the table is referenced as a foreign key in another table, you can&#8217;t convert it to MyISAM:</p>
<p><a href="http://bugs.mysql.com/bug.php?id=12555" rel="nofollow">http://bugs.mysql.com/bug.php?id=12555</a></p>
<p>That is, if tbl1 references tbl2, you can&#8217;t convert tbl2 to MyISAM.  You can alter tbl1 first, and then tbl2.</p>
<p>Andrii &#8212; it works just fine, however the problems is that you then still have the large ibdata files &#8212; which are now wasted, because most of the 352G in the ibdata files are now fragmented space, which cannot be recovered.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: andrii</title>
		<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/#comment-292750</link>
		<dc:creator>andrii</dc:creator>
		<pubDate>Wed, 22 Oct 2008 11:26:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/1301/mysql-schema-synchronization-and-gui-tools#comment-292750</guid>
		<description>Hey, why convert to MyISAM? Just ALTER ... ENGINE=InnoDB works fine when innodb_file_per_table changed.</description>
		<content:encoded><![CDATA[<p>Hey, why convert to MyISAM? Just ALTER &#8230; ENGINE=InnoDB works fine when innodb_file_per_table changed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom Krouper</title>
		<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/#comment-292660</link>
		<dc:creator>Tom Krouper</dc:creator>
		<pubDate>Wed, 22 Oct 2008 02:11:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/1301/mysql-schema-synchronization-and-gui-tools#comment-292660</guid>
		<description>Very cool information. I&#039;ll have to check out SQLyog and give workbench another look-see. Do you know if it works on the OSS version or just on SE?

Interesting side note that I had not heard before today. (We had a MySQL consultant on hand today.) He said that once you get over 200 tables, innodb_file_per_table is a bad plan due to all of the files that need to be opened. I hadn&#039;t heard that before. I haven&#039;t done any benchmarks but since we are using innodb_file_per_table I probably will be. If it is true, you might want to switch back to the old way. At least you&#039;ll have the tools to help you.

Cheers,
Tom</description>
		<content:encoded><![CDATA[<p>Very cool information. I&#8217;ll have to check out SQLyog and give workbench another look-see. Do you know if it works on the OSS version or just on SE?</p>
<p>Interesting side note that I had not heard before today. (We had a MySQL consultant on hand today.) He said that once you get over 200 tables, innodb_file_per_table is a bad plan due to all of the files that need to be opened. I hadn&#8217;t heard that before. I haven&#8217;t done any benchmarks but since we are using innodb_file_per_table I probably will be. If it is true, you might want to switch back to the old way. At least you&#8217;ll have the tools to help you.</p>
<p>Cheers,<br />
Tom</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arjen Lentz</title>
		<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/#comment-292657</link>
		<dc:creator>Arjen Lentz</dc:creator>
		<pubDate>Wed, 22 Oct 2008 01:58:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/1301/mysql-schema-synchronization-and-gui-tools#comment-292657</guid>
		<description>For alter tables in/to MyISAM, you want a very big myisam_sort_buffer_size
Dropping all the foreign keys beforehand shouldn&#039;t be necessary, the&#039;d be dropped in the ALTER TABLE. Saves one whole table copy operation per table ;-)

I&#039;ve got some customers with a bigger ibdata1.... it&#039;s not a problem often, but it can become unmanagable, obviously. So you can add one more separate data file for future growth of existing tables, and enable innodb-file-per-table for any new tables.
A complete dump/reload is not always an option... requires downtime and people don&#039;t always have a neat master/slave setup that can be flipped - which would be ideal for this.</description>
		<content:encoded><![CDATA[<p>For alter tables in/to MyISAM, you want a very big myisam_sort_buffer_size<br />
Dropping all the foreign keys beforehand shouldn&#8217;t be necessary, the&#8217;d be dropped in the ALTER TABLE. Saves one whole table copy operation per table ;-)</p>
<p>I&#8217;ve got some customers with a bigger ibdata1&#8230;. it&#8217;s not a problem often, but it can become unmanagable, obviously. So you can add one more separate data file for future growth of existing tables, and enable innodb-file-per-table for any new tables.<br />
A complete dump/reload is not always an option&#8230; requires downtime and people don&#8217;t always have a neat master/slave setup that can be flipped &#8211; which would be ideal for this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob Wultsch</title>
		<link>http://www.pythian.com/news/1301/mysql-schema-synchronization-and-gui-tools/#comment-292623</link>
		<dc:creator>Rob Wultsch</dc:creator>
		<pubDate>Tue, 21 Oct 2008 22:32:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/1301/mysql-schema-synchronization-and-gui-tools#comment-292623</guid>
		<description>&quot;The FOREIGN KEY and REFERENCES clauses are supported by the InnoDB storage engine, which implements ADD [CONSTRAINT [symbol]] FOREIGN KEY (...) REFERENCES ... (...). See Section 13.2.6.4, â€œFOREIGN KEY Constraintsâ€. For other storage engines, the clauses are parsed but ignored. The CHECK clause is parsed but ignored by all storage engines. See Section 12.1.9, â€œCREATE TABLE Syntaxâ€. The reason for accepting but ignoring syntax clauses is for compatibility, to make it easier to port code from other SQL servers, and to run applications that create tables with references.&quot;
http://dev.mysql.com/doc/refman/5.0/en/alter-table.html</description>
		<content:encoded><![CDATA[<p>&#8220;The FOREIGN KEY and REFERENCES clauses are supported by the InnoDB storage engine, which implements ADD [CONSTRAINT [symbol]] FOREIGN KEY (&#8230;) REFERENCES &#8230; (&#8230;). See Section 13.2.6.4, â€œFOREIGN KEY Constraintsâ€. For other storage engines, the clauses are parsed but ignored. The CHECK clause is parsed but ignored by all storage engines. See Section 12.1.9, â€œCREATE TABLE Syntaxâ€. The reason for accepting but ignoring syntax clauses is for compatibility, to make it easier to port code from other SQL servers, and to run applications that create tables with references.&#8221;<br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/alter-table.html" rel="nofollow">http://dev.mysql.com/doc/refman/5.0/en/alter-table.html</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

