<?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: OSNews vs. WordPress</title>
	<atom:link href="http://www.firsttube.com/read/osnews-vs-wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.firsttube.com/read/osnews-vs-wordpress/</link>
	<description>crunchy nuggets, served semi-daily</description>
	<lastBuildDate>Wed, 08 Feb 2012 22:05:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Adam S</title>
		<link>http://www.firsttube.com/read/osnews-vs-wordpress/comment-page-1/#comment-689</link>
		<dc:creator>Adam S</dc:creator>
		<pubDate>Fri, 15 Aug 2008 18:54:53 +0000</pubDate>
		<guid isPermaLink="false">http://firsttubecom/?p=656#comment-689</guid>
		<description>@James: 

Actually, what I really meant was that too many crappy db designers either over- or under-normalize their tables, and as a result have way too many database queries or, conversely, an overload or poorly performing complex queries.  

At OSNews, particularly as we transitioned to version 3 and &quot;the OSNews janitor&quot; and &quot;soup nazi&quot; errors become more prevalent, we had to learn a lot about how to do lots of database querying with minimal impact.  Turns out that lots of the old queries could be majorly compressed.  And in some cases, some sections of the site were better off using speedy little queries because some queries that used terms like HAVING were very heavy.  Certain statistics pages, especially, were just brutal on the CPU, but designing the interaction differently meant getting the same data in some cases up to 100x faster.  

At work we are a SQL server shop, but we use MySQL at OSNews, and it works differently enough that I&#039;m not much aware of updating statistics or researching query paths.  I can tell you that I do lots of testing on indexes, and ~ OH BOY! ~ do they make a difference!</description>
		<content:encoded><![CDATA[<p>@James: </p>
<p>Actually, what I really meant was that too many crappy db designers either over- or under-normalize their tables, and as a result have way too many database queries or, conversely, an overload or poorly performing complex queries.  </p>
<p>At OSNews, particularly as we transitioned to version 3 and &#8220;the OSNews janitor&#8221; and &#8220;soup nazi&#8221; errors become more prevalent, we had to learn a lot about how to do lots of database querying with minimal impact.  Turns out that lots of the old queries could be majorly compressed.  And in some cases, some sections of the site were better off using speedy little queries because some queries that used terms like HAVING were very heavy.  Certain statistics pages, especially, were just brutal on the CPU, but designing the interaction differently meant getting the same data in some cases up to 100x faster.  </p>
<p>At work we are a SQL server shop, but we use MySQL at OSNews, and it works differently enough that I&#8217;m not much aware of updating statistics or researching query paths.  I can tell you that I do lots of testing on indexes, and ~ OH BOY! ~ do they make a difference!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Parker</title>
		<link>http://www.firsttube.com/read/osnews-vs-wordpress/comment-page-1/#comment-688</link>
		<dc:creator>James Parker</dc:creator>
		<pubDate>Fri, 15 Aug 2008 18:17:14 +0000</pubDate>
		<guid isPermaLink="false">http://firsttubecom/?p=656#comment-688</guid>
		<description>Your reference to join performance caught my attention. I&#039;m assuming you&#039;re using an SQL-based RDBMS, and x is indexed (or x is the first column in an multipart key using an ordered index, e.g., tree rather than hash).

There are two main possible reasons you are able to beat the performance of the join:

1) The query plan generated is performing a sequential scan of the table (looking at all rows) to find the matching rows, rather than internally doing individual index lookups (the disjunctive normal approach), and the table is relatively large.  This means either the statistics are bad for the table or the query optimizer isn&#039;t doing a good job.

2) You are, in fact, only interested in some subset of the rows returned, and are able to examine only the smaller number by doing individual searches.  This is something which can be (and you would have) accomplished using a (partially, in your code) navigational/relational interface, rather than a fully SQL/relational interface.  That would be the case, for example, if you were only concerned with whether or not at least one matching row was present, as would be the case to manually check a constraint of some sort.

Thus concludes the DBMS lesson for the day 8-)</description>
		<content:encoded><![CDATA[<p>Your reference to join performance caught my attention. I&#8217;m assuming you&#8217;re using an SQL-based RDBMS, and x is indexed (or x is the first column in an multipart key using an ordered index, e.g., tree rather than hash).</p>
<p>There are two main possible reasons you are able to beat the performance of the join:</p>
<p>1) The query plan generated is performing a sequential scan of the table (looking at all rows) to find the matching rows, rather than internally doing individual index lookups (the disjunctive normal approach), and the table is relatively large.  This means either the statistics are bad for the table or the query optimizer isn&#8217;t doing a good job.</p>
<p>2) You are, in fact, only interested in some subset of the rows returned, and are able to examine only the smaller number by doing individual searches.  This is something which can be (and you would have) accomplished using a (partially, in your code) navigational/relational interface, rather than a fully SQL/relational interface.  That would be the case, for example, if you were only concerned with whether or not at least one matching row was present, as would be the case to manually check a constraint of some sort.</p>
<p>Thus concludes the DBMS lesson for the day <img src='http://www.firsttube.com/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam S</title>
		<link>http://www.firsttube.com/read/osnews-vs-wordpress/comment-page-1/#comment-687</link>
		<dc:creator>Adam S</dc:creator>
		<pubDate>Thu, 14 Aug 2008 22:07:08 +0000</pubDate>
		<guid isPermaLink="false">http://firsttubecom/?p=656#comment-687</guid>
		<description>@Benjamin: 

I hear ya on all fronts.  In my case, I just think the concept of extending core function via filters, hooks, and actions is really freakin&#039; cool. And, although there is plenty of OOP (in the form of $comment and The Loop), you&#039;re right, learning WordPress is not hard, it just takes some time to understand the inclusion loops.</description>
		<content:encoded><![CDATA[<p>@Benjamin: </p>
<p>I hear ya on all fronts.  In my case, I just think the concept of extending core function via filters, hooks, and actions is really freakin&#8217; cool. And, although there is plenty of OOP (in the form of $comment and The Loop), you&#8217;re right, learning WordPress is not hard, it just takes some time to understand the inclusion loops.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Benjamin Bach</title>
		<link>http://www.firsttube.com/read/osnews-vs-wordpress/comment-page-1/#comment-686</link>
		<dc:creator>Benjamin Bach</dc:creator>
		<pubDate>Thu, 14 Aug 2008 21:45:05 +0000</pubDate>
		<guid isPermaLink="false">http://firsttubecom/?p=656#comment-686</guid>
		<description>The coolest thing about Wordpress code is how simple they&#039;ve kept it. They didn&#039;t make a grand OOP scheme taking you hours to find and replace some core functionality. It also helps you understand how to write your plugins without having to refer all that much to the API documentation.

But then comes a long all their security bummers. So I guess they aren&#039;t to be praised endlessly for their efforts.</description>
		<content:encoded><![CDATA[<p>The coolest thing about WordPress code is how simple they&#8217;ve kept it. They didn&#8217;t make a grand OOP scheme taking you hours to find and replace some core functionality. It also helps you understand how to write your plugins without having to refer all that much to the API documentation.</p>
<p>But then comes a long all their security bummers. So I guess they aren&#8217;t to be praised endlessly for their efforts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Susan</title>
		<link>http://www.firsttube.com/read/osnews-vs-wordpress/comment-page-1/#comment-683</link>
		<dc:creator>Susan</dc:creator>
		<pubDate>Thu, 14 Aug 2008 17:24:27 +0000</pubDate>
		<guid isPermaLink="false">http://firsttubecom/?p=656#comment-683</guid>
		<description>I&#039;ve definitely a wordpress fan.  I&#039;ve been on the fence between using joomla and wordpress but because of the huge community for wordpress, it definitely makes it more user friendly.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve definitely a wordpress fan.  I&#8217;ve been on the fence between using joomla and wordpress but because of the huge community for wordpress, it definitely makes it more user friendly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: OSNews vs. WordPress</title>
		<link>http://www.firsttube.com/read/osnews-vs-wordpress/comment-page-1/#comment-681</link>
		<dc:creator>OSNews vs. WordPress</dc:creator>
		<pubDate>Thu, 14 Aug 2008 01:10:37 +0000</pubDate>
		<guid isPermaLink="false">http://firsttubecom/?p=656#comment-681</guid>
		<description>[...] Go to the author&#8217;s original blog: OSNews vs. WordPress [...]</description>
		<content:encoded><![CDATA[<p>[...] Go to the author&#8217;s original blog: OSNews vs. WordPress [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

