<?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"
	>
<channel>
	<title>Comments on: Whether or not to use MySQL</title>
	<atom:link href="http://www.dbms2.com/2007/05/26/whether-or-not-to-use-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dbms2.com/2007/05/26/whether-or-not-to-use-mysql/</link>
	<description>Choices in data management and analysis</description>
	<pubDate>Wed, 20 Aug 2008 00:43:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Iwan Jahja</title>
		<link>http://www.dbms2.com/2007/05/26/whether-or-not-to-use-mysql/#comment-39159</link>
		<dc:creator>Iwan Jahja</dc:creator>
		<pubDate>Tue, 19 Jun 2007 16:38:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/2007/05/26/whether-or-not-to-use-mysql/#comment-39159</guid>
		<description>Just wondering the advantage/disadvantage with simple query like (select a,b,c from d where a = 'xyz') on MySql5 using normal select statement and using stored procedure; and using Dotnet/Asp.Net.  With the select statement, MySql5 will still have to go thru the parsing/compilation steps, my guess is that it's not too different with the stored procedure.  What I am not too sure is the "extra" thing that needs to be done with stored procedure and whether it is more than enough offset by the no more need to parse/compile on subsequent runs.  Did some tests but unconclusive, perhaps due to server settings, etc.  Hoping those that know more of MySql5 internals could provide some light.

PS: I too would avoid writing 50 lines stored procedure that defines cursors, transactions, etc.</description>
		<content:encoded><![CDATA[<p>Just wondering the advantage/disadvantage with simple query like (select a,b,c from d where a = &#8216;xyz&#8217;) on MySql5 using normal select statement and using stored procedure; and using Dotnet/Asp.Net.  With the select statement, MySql5 will still have to go thru the parsing/compilation steps, my guess is that it&#8217;s not too different with the stored procedure.  What I am not too sure is the &#8220;extra&#8221; thing that needs to be done with stored procedure and whether it is more than enough offset by the no more need to parse/compile on subsequent runs.  Did some tests but unconclusive, perhaps due to server settings, etc.  Hoping those that know more of MySql5 internals could provide some light.</p>
<p>PS: I too would avoid writing 50 lines stored procedure that defines cursors, transactions, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay Pipes</title>
		<link>http://www.dbms2.com/2007/05/26/whether-or-not-to-use-mysql/#comment-32296</link>
		<dc:creator>Jay Pipes</dc:creator>
		<pubDate>Tue, 29 May 2007 20:09:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/2007/05/26/whether-or-not-to-use-mysql/#comment-32296</guid>
		<description>Hi!

CM: For example, one of the strongest claims in the pro-MySQL article is the not-so-staggering observation (italics theirs)

&#124;quoted&#124;One way MySQL achieves this scalability is through a popular feature called /stored procedures/, mini, precompiled routines that reside outside of the application.&#124;/quoted&#124;

Actually, stored procedures do *not* lead to scalability with MySQL in many environments; quite the opposite for a number of reasons.  Don't be misled to thinking that MySQL's stored procedures are similar to any of the other RDBMS you write about here -- they are quite different.  Unlike most RDBMS, MySQL caches the stored procedure execution plan *on the connection thread*, not in a global store, and so applications written in languages like PHP (which actually gains much of its scaling ability from being stateless and shared-nothing) get little to no benefit (and even a performance regression) by using stored procedures.  If you open a connection to MySQL in a PHP page request, issue a stored procedure request to get back some data, then close that connection, you just wasted a bunch of CPU cycles compiling a procedure plan for no benefit whatsoever since the cache will be destroyed when the connection is closed.

Furthermore, using stored procedures actually goes *against* more modern scalable application design, for the following reason: by putting stored procedures on the database server, the application is being designed to rely more heavily on the database server itself to do the heavy lifting of the application.  This is in direct opposition to modern scalability designs of web applications, where scalability is achieved via having distributed application servers performing application functionality with as little (or no) reliance or dependency on a central server or even each other.  Meaning: no single point of failure, no "big box" to handle all the lifting.

Stored procedures, IMHO, represent the days of mainframe and behemoth boxes and client-server architectures of the past, when the main point was to isolate the dumb user and clients/terminals and put everything on a central, huge server.  This strategy served the purposes of the big database vendors quite well, as it played nicely into their relationships with hardware vendors and their own pricing models.  

MySQL doesn't represent this old way of thinking, and our pricing and internal design don't play to the big box architecture, but rather the new commodity scale-out architecture of modern systems...

Just my two cents.

Jay Pipes</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>CM: For example, one of the strongest claims in the pro-MySQL article is the not-so-staggering observation (italics theirs)</p>
<p>|quoted|One way MySQL achieves this scalability is through a popular feature called /stored procedures/, mini, precompiled routines that reside outside of the application.|/quoted|</p>
<p>Actually, stored procedures do *not* lead to scalability with MySQL in many environments; quite the opposite for a number of reasons.  Don&#8217;t be misled to thinking that MySQL&#8217;s stored procedures are similar to any of the other RDBMS you write about here &#8212; they are quite different.  Unlike most RDBMS, MySQL caches the stored procedure execution plan *on the connection thread*, not in a global store, and so applications written in languages like PHP (which actually gains much of its scaling ability from being stateless and shared-nothing) get little to no benefit (and even a performance regression) by using stored procedures.  If you open a connection to MySQL in a PHP page request, issue a stored procedure request to get back some data, then close that connection, you just wasted a bunch of CPU cycles compiling a procedure plan for no benefit whatsoever since the cache will be destroyed when the connection is closed.</p>
<p>Furthermore, using stored procedures actually goes *against* more modern scalable application design, for the following reason: by putting stored procedures on the database server, the application is being designed to rely more heavily on the database server itself to do the heavy lifting of the application.  This is in direct opposition to modern scalability designs of web applications, where scalability is achieved via having distributed application servers performing application functionality with as little (or no) reliance or dependency on a central server or even each other.  Meaning: no single point of failure, no &#8220;big box&#8221; to handle all the lifting.</p>
<p>Stored procedures, IMHO, represent the days of mainframe and behemoth boxes and client-server architectures of the past, when the main point was to isolate the dumb user and clients/terminals and put everything on a central, huge server.  This strategy served the purposes of the big database vendors quite well, as it played nicely into their relationships with hardware vendors and their own pricing models.  </p>
<p>MySQL doesn&#8217;t represent this old way of thinking, and our pricing and internal design don&#8217;t play to the big box architecture, but rather the new commodity scale-out architecture of modern systems&#8230;</p>
<p>Just my two cents.</p>
<p>Jay Pipes</p>
]]></content:encoded>
	</item>
</channel>
</rss>
