<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tiffany B. Brown &#187; databases</title>
	<atom:link href="http://tiffanybbrown.com/tag/databases/feed/" rel="self" type="application/rss+xml" />
	<link>http://tiffanybbrown.com</link>
	<description>A web log about web development and internet culture with frequent detours into other stuff.</description>
	<lastBuildDate>Fri, 10 Feb 2012 23:35:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>UPDATED: Atlanta, GA: PHP Atlanta &#8220;Join-Fu: The Art of SQL&#8221;</title>
		<link>http://tiffanybbrown.com/2008/07/18/atlanta-ga-php-atlanta-join-fu-the-art-of-sql/</link>
		<comments>http://tiffanybbrown.com/2008/07/18/atlanta-ga-php-atlanta-join-fu-the-art-of-sql/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 19:33:43 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Tech Events]]></category>
		<category><![CDATA[Atlanta]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[atlantaphp]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[jay pipes]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[underarmchairmedia]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/?p=1336</guid>
		<description><![CDATA[This meeting has been rescheduled to Thursday, August 14th at 7 p.m. Jay Pipes of MySQL AB and co-author of Pro MySQL, comes to Atlanta this month to present &#8220;Join-Fu: The Art of SQL.&#8221; I&#8217;ve seen Pipes speak before, and his presentation was incredibly informative. If you do a lot of development with MySQL, you [...]]]></description>
			<content:encoded><![CDATA[<div class="editors-note">This meeting has been <a class="ext" href="http://www.atlantaphp.org/archive/84">rescheduled</a> to <b>Thursday, August 14th at 7 p.m.</b></div>
<p><a href="http://jpipes.com/">Jay Pipes</a> of MySQL AB and co-author of <a class="book title" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FMySQL-Experts-Voice-Open-Source%2Fdp%2F159059505X%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1216408117%26sr%3D8-1&#038;tag=webinista-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Pro MySQL</a><img src="http://www.assoc-amazon.com/e/ir?t=webinista-20&amp;l=ur2&amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, comes to Atlanta this month to present &#8220;Join-Fu: The Art of SQL.&#8221; </p>
<p>I&#8217;ve seen Pipes speak before, and his presentation was incredibly informative. If you do a lot of development with MySQL, you should definitely attend. </p>
<div class="event-details">
<h3>Event details</h3>
<ul>
<li><b>When:</b> Thursday, August 14th, 2008 from 7 p.m. until 9 p.m.
</li>
<li><b>Where:</b> <a href="http://www.atlantaphp.org/directions-canadian-consulate/">Consulate General of Canada</a> 17th floor Colony Square (see the concierge for access)</li>
<li><b>How much?:</b> Free to attend.</li>
<li><a href="http://www.atlantaphp.org/archive/83" class="ext">More information</a></li>
</ul>
</div>
<h4>Related:</h4>
<ul>
<li>Jay Pipes&#8217;s <a href="http://www.jpipes.com/index.php?/archives/239-Slides-for-Join-Fu-The-Art-of-SQL-I-and-II.html" class="ext">Slides for Join-Fu: The Art of SQL (I and II)</a> (I do not know whether this will be the same talk as the one Pipes will give next month.)</li>
<li><a href="http://tiffanybbrown.com/category/tech+events/feed/" title="RSS Feed">RSS for Tech Events</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2008/07/18/atlanta-ga-php-atlanta-join-fu-the-art-of-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review: Learning PHP Data Objects by Dennis Popel</title>
		<link>http://tiffanybbrown.com/2007/10/23/review-learning-php-data-objects-by-dennis-popel/</link>
		<comments>http://tiffanybbrown.com/2007/10/23/review-learning-php-data-objects-by-dennis-popel/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 05:01:56 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[MySQL / Databases]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[pdo]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/2007/10/23/review-learning-php-data-objects-by-dennis-popel/</guid>
		<description><![CDATA[Packt Publishing graciously provided me with a copy of this book to review. PHP supports more than a dozen database setups, including the SQLite library bundled with PHP 5. That&#8217;s a lot of databases, and each one has its own connection syntax and server-specific functions. So what happens when you want to be able to [...]]]></description>
			<content:encoded><![CDATA[<p span class="editors-note">Packt Publishing graciously provided me with a copy of this book to review.</p>
<p><img src='http://tiffanybbrown.com/images/uploads/2007/10/learningpdo.jpg' alt='Learning P H P Data Objects' class="rightimg" /> PHP supports more than a dozen database setups, including the <a href="http://sqlite.org/">SQLite</a> library bundled with PHP 5. That&#8217;s a lot of databases, and each one has its own connection syntax and server-specific functions. </p>
<p>So what happens when you want to be able to swap one database for another? You turn to an abstraction library, such as <a href="http://php.net/pdo"><abbr title="PHP Data Objects">PDO</abbr></a>.
</p>
<p>In <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FLearning-Data-Objects-Dennis-Poppel%2Fdp%2F1847192661%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1193074907%26sr%3D8-1&#038;tag=webinista-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325" class="book title">Learning PHP Data Objects</a><img src="http://www.assoc-amazon.com/e/ir?t=webinista-20&amp;l=ur2&amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, Dennis Popel takes you through the process of building an application using <abbr class="say">PDO</abbr> with My<abbr class="say">SQL</abbr> and SQLite.</p>
<p>Aimed squarely at PHP developers who are new to <abbr class="say">PDO</abbr>, Popel covers how to make connections, handle errors, and use prepared statements with <abbr class="say">PDO</abbr>. He also discusses transactions, <a href="http://en.wikipedia.org/wiki/Model-view-controller"><abbr title="Model-View-Controller">MVC</abbr> development</a>, and the appropriateness of using PDO versus other abstraction libraries.</p>
<p>Where <span class="book title">Learning PHP Data Objects</span> shines,  however is in its code examples. They are easy to follow, and Popel smartly alerts readers to potential gotchas in developing the sample application.</p>
<p>The book assumes an understanding of <abbr title="Object-oriented P H P">OOPHP</abbr> &#8212; necessary because PDO is entirely object-oriented. To get the most out of it, you should be familiar with object-oriented principles and syntax. While Appendix A does give readers a quick overview of <abbr class="say">OOPHP</abbr>, for a more thorough treatment, you&#8217;ll need to look elsewhere.</p>
<p>It&#8217;s a solid, though not quite perfect book. For example, Popel only sort-of mentions a potentially huge gotcha: when you may need to specify a <a href="http://tiffanybbrown.com/2007/10/22/solution-for-cant-connect-to-local-mysql-server-through-socket-tmpmysqlsock-error-when-using-pdo/">unix_socket parameter</a> in the connection string. It&#8217;s a problem I think would be common enough and confusing enough to discuss and demonstrate. I also think Popel could have been a bit clearer about when and why to use <code>PDOStatement->closeCursor()</code>.</p>
<p>Those are minor quibbles however, easily solved by consulting the documentation or doing a Google search. Overall, this book is nice introduction to the whys and hows of using PDO to develop database driven applications.</p>
<div class="quickfacts">
<h3>Quick facts</h3>
<ul>
<li class="book title">Learning PHP Data Objects</li>
<li class="book author">By Dennis Popel</li>
<li class="book publisher"><a href="http://www.packtpub.com/">Packt Publishing</a></li>
<li class="book release">September 2007</li>
<li class="book price">$39.99</li>
<li>ISBN number: <span class="ISBN">978-1-847192-66-0</span></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2007/10/23/review-learning-php-data-objects-by-dennis-popel/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>NYPHP Con: &#8220;Maximum Velocity MySQL&#8221; &#8211; Indexes and storage engines</title>
		<link>http://tiffanybbrown.com/2006/06/14/mysql-indexes-storage-engines/</link>
		<comments>http://tiffanybbrown.com/2006/06/14/mysql-indexes-storage-engines/#comments</comments>
		<pubDate>Wed, 14 Jun 2006 16:04:00 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[MySQL / Databases]]></category>
		<category><![CDATA[NYPHPCon2006]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/viewqb.php/645</guid>
		<description><![CDATA[With Jay Pipes of MySQL. Diversity stats, in case you&#8217;re wondering: Men: about 30. Women: 4. People of color: 4. Jay Pipes is the Community Relations Manager, North America for MySQL, Inc. This was a three-hour tutorial about ways to fine-tune your MySQL queries. This is part one of my notes. This post may contain [...]]]></description>
			<content:encoded><![CDATA[<p>With Jay Pipes of MySQL. Diversity stats, in case you&#8217;re wondering: Men: about 30. Women: 4. People of color: 4.</p>
<p class="editors-note"><a href="http://jpipes.com/">Jay Pipes</a> is the Community Relations Manager, North America for MySQL, Inc. This was a three-hour tutorial about ways to fine-tune your MySQL queries. </p>
<p class="editors-note">This is part one of my notes. This post may contain inaccuracies, typos, boo-boos, etc. Jay says his slides will be available <a href="http://jpipes.com/">on his web site</a>, so be sure to check there as well. If you have questions, direct them to Jay or consult the <a href="http://dev.mysql.com/">MySQL documentation</a>.</p>
<h3>Indexes</h3>
<ul>
<li>Gives you a sorted order that allows you to find things quickly. </li>
<li>Indexes speed up select or read statements. </li>
<li>Indexes slow down writing to the database because MySQL not only has to write the record, but also has to write the index.</li>
</ul>
<p>The kind of indexes available and their efficiency depends on the type of storage engine you choose. Keep your indexes slim on write-intensive applications.</p>
<h3>Types of storage engines</h3>
<p>Choose your table&#8217;s storage engine type based on the type of information it holds, and the function for which you will use the table. Can mix table types in the same database.</p>
<h4>MyISAM</h4>
<ul>
<li>Unclustered data storage</li>
<li>Good insert performance and good with concurrent inserts</li>
<li>Small foot print</li>
<li>B-tree, r-tree and FULLTEXT indexing; Can use for spatial calculations, such as ZIP codes</li>
<li>Poor concurrent update and delete performance</li>
<li>No foreign key support; You can use a foreign key, but relational integrity is not guaranteed. (Forthcoming in version 5.2)</li>
<li>No transactions available</li>
</ul>
<p>Good for warehousing data, logging data and auditing data. </p>
<h4>InnoDB</h4>
<p>Good for when you need a lot of concurrent updates and will be looking data up by ID. Good for online transaction processing.</p>
<ul>
<li>NO FULLTEXT indexing or spacial data (r-tree indexes). </li>
<li>Large memory usage and a large data footprint.</li>
<li>Full transactional support</li>
<li>Support for foreign keys</li>
<li>Be sure to set a primary key, and use the smallest possible key (INT not BIGINT). If you don&#8217;t InnoDB will create it&#8217;s own super-integer index. Because of the way InnoDB handles indexes, this <em>is not</em> desirable. </li>
</ul>
<h4>Archive</h4>
<p>Good for archiving, audit logging, and distributable media (for example, applications that you don&#8217;t want the user to be able to modify).</p>
<ul>
<li>Quick inserts and table scans</li>
<li>Read-only</li>
<li>Zlib compression</li>
<li>No indexes allowed</li>
<li>No foreign key support</li>
</ul>
<h4>Memory / HEAP</h4>
<p>Great for temporary tables, session data, calculation tables, or information that will be requested frequently.</p>
<ul>
<li>Very, very fast selects because it&#8217;s all stored in memory</li>
<li>Supports hash or b-tree indexes</li>
<li>Data is gone on reboot, but you can get around this with <code>init_file</code> or my.cnf/my.ini.</li>
<li>Limited by amount of memory available on the server</li>
</ul>
<p>Can combine engine types within the database to take advantage of each storage engine&#8217;s strengths.</p>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2006/06/14/mysql-indexes-storage-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

