<?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: Why MySQL could be slow with large tables ?</title>
	<atom:link href="http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/</link>
	<description>Everything about MySQL Performance</description>
	<pubDate>Fri, 29 Aug 2008 23:27:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: sqi</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-349804</link>
		<dc:creator>sqi</dc:creator>
		<pubDate>Thu, 28 Aug 2008 07:15:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-349804</guid>
		<description>ok</description>
		<content:encoded><![CDATA[<p>ok</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: arpit</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-349802</link>
		<dc:creator>arpit</dc:creator>
		<pubDate>Thu, 28 Aug 2008 07:05:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-349802</guid>
		<description>Hello,pls suggest the solution for my problem.
I retrive records from 4 tables which are quite large in size using joins ,but it takes lot of time to execute.How to speed up the same query?</description>
		<content:encoded><![CDATA[<p>Hello,pls suggest the solution for my problem.<br />
I retrive records from 4 tables which are quite large in size using joins ,but it takes lot of time to execute.How to speed up the same query?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: trent</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-337490</link>
		<dc:creator>trent</dc:creator>
		<pubDate>Wed, 30 Jul 2008 15:18:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-337490</guid>
		<description>So - if you have a table with millions of rows with lots of updates and reads happening, InnoDB would be the way to go from what I read, But want if you want to use mysql 'full text search' which can only be used on MyISAM.

Would duplicating data on inserts and updates be an option which would mean having two of the same table, one using InnoDB for main reading purposes and one for MyISAM for searching using Full text search and every time you do an update actually uipdate bith table etc. (forget duplicating data as this is cheap enough) I want speed.

or would using only 1 table, MyISAM be faster, by not having to dupliacte the 'update' and 'insert' and 'delete' calls etc everytime data is modified.

Or is there another was to do this like, run a cron every hour to keep MyISAM table in sinc or somthing, meaning search would be out of date by one hour - which I can live with in my situation.</description>
		<content:encoded><![CDATA[<p>So - if you have a table with millions of rows with lots of updates and reads happening, InnoDB would be the way to go from what I read, But want if you want to use mysql &#8216;full text search&#8217; which can only be used on MyISAM.</p>
<p>Would duplicating data on inserts and updates be an option which would mean having two of the same table, one using InnoDB for main reading purposes and one for MyISAM for searching using Full text search and every time you do an update actually uipdate bith table etc. (forget duplicating data as this is cheap enough) I want speed.</p>
<p>or would using only 1 table, MyISAM be faster, by not having to dupliacte the &#8216;update&#8217; and &#8216;insert&#8217; and &#8216;delete&#8217; calls etc everytime data is modified.</p>
<p>Or is there another was to do this like, run a cron every hour to keep MyISAM table in sinc or somthing, meaning search would be out of date by one hour - which I can live with in my situation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: How is MySQL&#8217;s join performance these days? &#124; DBMS2 -- DataBase Management System Services</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-325985</link>
		<dc:creator>How is MySQL&#8217;s join performance these days? &#124; DBMS2 -- DataBase Management System Services</dc:creator>
		<pubDate>Thu, 10 Jul 2008 22:27:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-325985</guid>
		<description>[...] similar to those in a mid-2006 post on MySQL Performancing Blog, which said: One of the reasons elevating this problem in MySQL is lack of advanced join methods at [...]</description>
		<content:encoded><![CDATA[<p>[...] similar to those in a mid-2006 post on MySQL Performancing Blog, which said: One of the reasons elevating this problem in MySQL is lack of advanced join methods at [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vladimir</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-314528</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Tue, 17 Jun 2008 12:51:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-314528</guid>
		<description>Normally MySQL is rather fast loading data in MyISAM table, but there is exception, which is when it can’t rebuild indexes by sort but builds them
row by row instead. It can be happening due to wrong configuration (ie too small myisam_max_sort_file_size or myisam_max_extra_sort_file_size) or
it could be just lack of optimization, if you’re having large (does not fit in memory) PRIMARY or UNIQUE indexes.</description>
		<content:encoded><![CDATA[<p>Normally MySQL is rather fast loading data in MyISAM table, but there is exception, which is when it can’t rebuild indexes by sort but builds them<br />
row by row instead. It can be happening due to wrong configuration (ie too small myisam_max_sort_file_size or myisam_max_extra_sort_file_size) or<br />
it could be just lack of optimization, if you’re having large (does not fit in memory) PRIMARY or UNIQUE indexes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: YC Wee</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-308058</link>
		<dc:creator>YC Wee</dc:creator>
		<pubDate>Tue, 03 Jun 2008 08:52:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-308058</guid>
		<description>Hi guys,
I have recently written an article, "Full Text Partitioning - The Ultimate Scalability", and my article can be found at the url below:

http://www.addedworth.com/index.php/2008/06/03/full-text-partitioning-the-ultimate-scal

This article describes the steps to take when a database is spilled over to more than a single server. Do come by my site and let me know your opinion.

Thanks,
YC Wee</description>
		<content:encoded><![CDATA[<p>Hi guys,<br />
I have recently written an article, &#8220;Full Text Partitioning - The Ultimate Scalability&#8221;, and my article can be found at the url below:</p>
<p><a href="http://www.addedworth.com/index.php/2008/06/03/full-text-partitioning-the-ultimate-scal" rel="nofollow">http://www.addedworth.com/index.php/2008/06/03/full-text-partitioning-the-ultimate-scal</a></p>
<p>This article describes the steps to take when a database is spilled over to more than a single server. Do come by my site and let me know your opinion.</p>
<p>Thanks,<br />
YC Wee</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hugo Rafael</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-291371</link>
		<dc:creator>Hugo Rafael</dc:creator>
		<pubDate>Thu, 01 May 2008 17:06:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-291371</guid>
		<description>That seems to be the solution. I had already found that solution on MySql web site, although 5.1 is still not stable according to them, and 5.0 doesn't support partitioning.
I'll have to do it like that, and even partitioning over more than one disk in order to distribute disk usage.

Cheers.</description>
		<content:encoded><![CDATA[<p>That seems to be the solution. I had already found that solution on MySql web site, although 5.1 is still not stable according to them, and 5.0 doesn&#8217;t support partitioning.<br />
I&#8217;ll have to do it like that, and even partitioning over more than one disk in order to distribute disk usage.</p>
<p>Cheers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: xeeshaan</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-291059</link>
		<dc:creator>xeeshaan</dc:creator>
		<pubDate>Thu, 01 May 2008 08:45:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-291059</guid>
		<description>Best Practice to deal with large DBs is to use a Partitioning Scheme on your DB after doing a thorough analysis of your Queries and your application requirements. Since 5.1 support Data Partitioning, I am using the scheme over a Huge DB of Call Details records which is growing as 20M (approximately 2.5GB in size) records per day and I have found it an appropriate solution to my Large DB issues.

As for Joins, its always best practice not to use joins over Large Tables. Instead use alternate Sub-queries to Joins where possible and with the use of Partitioning make subsets of your data and bring them in Heap-tables rather than storing them on Disk and perform your operations making sub-tasks of Task. 

Remember when Anaconda eats a deer it always take time to get it right in itss stomach. So give your Anaconda small pieces of meat than full deer all in once.</description>
		<content:encoded><![CDATA[<p>Best Practice to deal with large DBs is to use a Partitioning Scheme on your DB after doing a thorough analysis of your Queries and your application requirements. Since 5.1 support Data Partitioning, I am using the scheme over a Huge DB of Call Details records which is growing as 20M (approximately 2.5GB in size) records per day and I have found it an appropriate solution to my Large DB issues.</p>
<p>As for Joins, its always best practice not to use joins over Large Tables. Instead use alternate Sub-queries to Joins where possible and with the use of Partitioning make subsets of your data and bring them in Heap-tables rather than storing them on Disk and perform your operations making sub-tasks of Task. </p>
<p>Remember when Anaconda eats a deer it always take time to get it right in itss stomach. So give your Anaconda small pieces of meat than full deer all in once.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hugo Rafael</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-238944</link>
		<dc:creator>Hugo Rafael</dc:creator>
		<pubDate>Mon, 04 Feb 2008 15:23:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-238944</guid>
		<description>It does help, cheers.
Dropping the index is out of the question, since dropping them and creating them takes far too much time, being even quicker to just let them be.
I think the answer to this, is just drop the PK and FK's, and create a normal index with the two main searchable columns. Although this index seams to be a bit slower, I think it might be quicker on large inserts on the table.
I suppose that I'll have to break the table up, as well, in order to have all the data in smaller tables and smaller indexes.

I was having indexes almost the size of the complete table (+/- 5GB), which made the whole table around 10GB. I have been playing with different indexes and at this time I managed to drop the index's size to up 1.5GB, which is much more acceptable. Although the selects now take 25% more time to perform, it's still around 1 second, so it seams quite acceptable to me, since there are more than 100 million records in the table, and if it means that the inserts are faster.

Cheers for your help.</description>
		<content:encoded><![CDATA[<p>It does help, cheers.<br />
Dropping the index is out of the question, since dropping them and creating them takes far too much time, being even quicker to just let them be.<br />
I think the answer to this, is just drop the PK and FK&#8217;s, and create a normal index with the two main searchable columns. Although this index seams to be a bit slower, I think it might be quicker on large inserts on the table.<br />
I suppose that I&#8217;ll have to break the table up, as well, in order to have all the data in smaller tables and smaller indexes.</p>
<p>I was having indexes almost the size of the complete table (+/- 5GB), which made the whole table around 10GB. I have been playing with different indexes and at this time I managed to drop the index&#8217;s size to up 1.5GB, which is much more acceptable. Although the selects now take 25% more time to perform, it&#8217;s still around 1 second, so it seams quite acceptable to me, since there are more than 100 million records in the table, and if it means that the inserts are faster.</p>
<p>Cheers for your help.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim</title>
		<link>http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-238883</link>
		<dc:creator>Jim</dc:creator>
		<pubDate>Mon, 04 Feb 2008 13:14:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/#comment-238883</guid>
		<description>Sorry for the confusion, but this is what I was talking about also. If you need to search on col1, col2, col3 then create an index(col1,col2,col3). What I was saying is if you have an index(col1), index(col2), and index(col3) and you run a query and want it optimized, the MySQL engine will not combine the second example to give you index(col1,col2,col3) for a more optimized query. It will only pick index(col1) or index(col2), index(col3) or none of the above. It doesn't take any longer to create any one of these indexes, but I'm sure you know all this. The trick I use, because I have one database that is fairly large with many indexes, is to drop the indexes, then do the bulk up load, and then recreate the indexes. 
I hope this helps.</description>
		<content:encoded><![CDATA[<p>Sorry for the confusion, but this is what I was talking about also. If you need to search on col1, col2, col3 then create an index(col1,col2,col3). What I was saying is if you have an index(col1), index(col2), and index(col3) and you run a query and want it optimized, the MySQL engine will not combine the second example to give you index(col1,col2,col3) for a more optimized query. It will only pick index(col1) or index(col2), index(col3) or none of the above. It doesn&#8217;t take any longer to create any one of these indexes, but I&#8217;m sure you know all this. The trick I use, because I have one database that is fairly large with many indexes, is to drop the indexes, then do the bulk up load, and then recreate the indexes.<br />
I hope this helps.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
