Hi Larry,

On May 14, 2014, at 5:05 AM, Larry Martell <larry.mart...@gmail.com> wrote:

> We have a table with 254 columns in it. 80% of the time, a very small
> subset of these columns are queried. The other columns are rarely, if
> ever, queried. (But they could be at any time, so we do need to
> maintain them.). Would I expect to get a marked performance boost if I
> split my table up into 2 tables, one with the few frequently queried
> columns and another with less frequently queried ones? Doing this will
> require a lot of code changes, so I don't want to go down this path if
> it won't be beneficial. Can folks here offer their experiences and
> learned opinions about this?

There are some advantages to splitting the table.  If we use InnoDB as an 
example:

Storage is row-oriented:
- All those less-needed columns will by stored together in the same page 
(unless text or blob - in which case it can be a pointer to an external page).
- This can consume more memory than required as the less important columns has 
to be loaded with the important columns.

Locking is row-oriented:
- Having a non-normalized structure may mean more contention.
- One transaction is updating one part of a very wide row, another transaction 
is blocked waiting to update a different column.  This might not happen in a 
normalized schema.

- Morgan
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql

Reply via email to