<?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: What I hate about MySQL</title>
	<atom:link href="http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/</link>
	<description>IT Professional by day, mad computer scientist by night</description>
	<lastBuildDate>Tue, 19 Jul 2011 17:26:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: mmcdermott</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-921</link>
		<dc:creator>mmcdermott</dc:creator>
		<pubDate>Mon, 27 Oct 2008 16:23:17 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-921</guid>
		<description>@pcdinh:

I really can&#039;t say that I agree on constraints. Stored procedures I can see as a matter of taste, especially if one is using prepared statements, but not constraints. I have seen too much code where the constraints were not being enforced (either in MySQL or that they had never been created in the first place) and things broke. Rules that should have helped to ensure valid data were not being enforced and it caused a big mess. You may be able to somewhat get away with it when you&#039;re just building a website (after all, an orphaned article is an unfortunate bug, but not a catastrophe), but it is potentially huge when working with actual software.</description>
		<content:encoded><![CDATA[<p>@pcdinh:</p>
<p>I really can&#8217;t say that I agree on constraints. Stored procedures I can see as a matter of taste, especially if one is using prepared statements, but not constraints. I have seen too much code where the constraints were not being enforced (either in MySQL or that they had never been created in the first place) and things broke. Rules that should have helped to ensure valid data were not being enforced and it caused a big mess. You may be able to somewhat get away with it when you&#8217;re just building a website (after all, an orphaned article is an unfortunate bug, but not a catastrophe), but it is potentially huge when working with actual software.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mmcdermott</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-920</link>
		<dc:creator>mmcdermott</dc:creator>
		<pubDate>Fri, 24 Oct 2008 15:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-920</guid>
		<description>@Jonathan - right you are; I knew I overlooked a thing or two :)</description>
		<content:encoded><![CDATA[<p>@Jonathan &#8211; right you are; I knew I overlooked a thing or two <img src='http://www.mad-computer-scientist.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-916</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Tue, 21 Oct 2008 17:43:40 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-916</guid>
		<description>@pcdinh: &quot;Constraints and concurrency are not enforced by default: I love actually. By moving the logic of maintaining relationships into application developers’ responsibility, applications can be made more flexible and user-friendly.&quot;

Until one of the app devs &quot;forgets&quot; to validate, or does not understand the data relationships, resulting in inconsistent data. What happens to user-friendliness then? Fail.

A strength of a properly designed _relational_ database is the management of relationships in a single location, without exception. Use the right tool for the task.

Secondarily, unfriendly error messages are a failure of application developers who do not know how to properly detect or catch exceptions and handle them properly.</description>
		<content:encoded><![CDATA[<p>@pcdinh: &#8220;Constraints and concurrency are not enforced by default: I love actually. By moving the logic of maintaining relationships into application developers’ responsibility, applications can be made more flexible and user-friendly.&#8221;</p>
<p>Until one of the app devs &#8220;forgets&#8221; to validate, or does not understand the data relationships, resulting in inconsistent data. What happens to user-friendliness then? Fail.</p>
<p>A strength of a properly designed _relational_ database is the management of relationships in a single location, without exception. Use the right tool for the task.</p>
<p>Secondarily, unfriendly error messages are a failure of application developers who do not know how to properly detect or catch exceptions and handle them properly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pcdinh</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-918</link>
		<dc:creator>pcdinh</dc:creator>
		<pubDate>Sun, 19 Oct 2008 15:19:54 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-918</guid>
		<description>The lack of full support to full outer join is not a pain

http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/

Constraints and concurrency are not enforced by default: I love actually. By moving the logic of maintaining relationships into application developers&#039; responsibility, applications can be made more flexible and user-friendly. At least error message will be more friendly.

Stored procedures: It is overrated. SP can be a maintenance nightmare, especially when you do heavy refactoring</description>
		<content:encoded><![CDATA[<p>The lack of full support to full outer join is not a pain</p>
<p><a href="http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/" rel="nofollow">http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/</a></p>
<p>Constraints and concurrency are not enforced by default: I love actually. By moving the logic of maintaining relationships into application developers&#8217; responsibility, applications can be made more flexible and user-friendly. At least error message will be more friendly.</p>
<p>Stored procedures: It is overrated. SP can be a maintenance nightmare, especially when you do heavy refactoring</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mariusz</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-917</link>
		<dc:creator>Mariusz</dc:creator>
		<pubDate>Sun, 19 Oct 2008 15:19:29 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-917</guid>
		<description>What can I say, I agree with you... MySQL with default MyISAM engine is only pseudo relational database. There are a lot of other limitations in MyISAM, e.g. transactions or table locks.

PostgreSQL is much more powerfull open-source database system. If I can, I always choose this RDBMS. Maybe PostgreSQL is a little bit slower for smaller databases, but for medium or large...</description>
		<content:encoded><![CDATA[<p>What can I say, I agree with you&#8230; MySQL with default MyISAM engine is only pseudo relational database. There are a lot of other limitations in MyISAM, e.g. transactions or table locks.</p>
<p>PostgreSQL is much more powerfull open-source database system. If I can, I always choose this RDBMS. Maybe PostgreSQL is a little bit slower for smaller databases, but for medium or large&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Edwin Santosa</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-914</link>
		<dc:creator>Thomas Edwin Santosa</dc:creator>
		<pubDate>Sun, 19 Oct 2008 10:37:05 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-914</guid>
		<description>Fourth: no easy way for raising exception
Fifth: no easy logging</description>
		<content:encoded><![CDATA[<p>Fourth: no easy way for raising exception<br />
Fifth: no easy logging</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Ellis</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-913</link>
		<dc:creator>Jonathan Ellis</dc:creator>
		<pubDate>Sat, 18 Oct 2008 17:16:18 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-913</guid>
		<description>Last I checked, even innodb didn&#039;t honor CHECK constraints.</description>
		<content:encoded><![CDATA[<p>Last I checked, even innodb didn&#8217;t honor CHECK constraints.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Liam</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-912</link>
		<dc:creator>Liam</dc:creator>
		<pubDate>Sat, 18 Oct 2008 16:37:52 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-912</guid>
		<description>I got one.  If you have a table with two TIMESTAMP columns, and update one of them, both will be updated.  This is because MySQL didn&#039;t have triggers for a very long time, and thus created a data type that updates every time you change a row.</description>
		<content:encoded><![CDATA[<p>I got one.  If you have a table with two TIMESTAMP columns, and update one of them, both will be updated.  This is because MySQL didn&#8217;t have triggers for a very long time, and thus created a data type that updates every time you change a row.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marco</title>
		<link>http://www.mad-computer-scientist.com/blog/2008/10/18/what-i-hate-about-mysql/comment-page-1/#comment-911</link>
		<dc:creator>marco</dc:creator>
		<pubDate>Sat, 18 Oct 2008 16:23:10 +0000</pubDate>
		<guid isPermaLink="false">http://mad-computer-scientist.com/blog/?p=80#comment-911</guid>
		<description>and the fact that tables with ibdata aren&#039;t shrinkable after a delete ??</description>
		<content:encoded><![CDATA[<p>and the fact that tables with ibdata aren&#8217;t shrinkable after a delete ??</p>
]]></content:encoded>
	</item>
</channel>
</rss>

