On Mon, 21 Jun 2010, der.hans wrote:
> I need to match the most recently entered status from t2 with stuff from
> t1 in MySQL.
> t1.stuff, t2.status == $some_val where max(t2.timestamp) and t1.varchar1
> == t2.varchar1 and t2.varchar2 == t2.varchar2
> I can also add columns to either table.
ugghhh -- you mention MySQL in the subject line, but just
because one has a hammer does not mean everything is a nail.
The MySQL database server kernel engine can use a journal and
serialization of transactions to attain ACID. This can slow
things down a lot if used
There is the 'new' interest in 'eventually consistent'
databases. Can you use 'almost the latest' data? [some
problem domains do not admit a use case permitting this, but
some do: consider: DNS which might update detail all the way
through only every couple of weeks in some cases]
I would take a hint and amend my code to emit both the insert
to t1 AND a destructive update write to 'last seen' location
outside of the database. A strict SQL approach is gonna kill
you on retrieval time and lock serialization
This avoids that killing JOIN
I would also generate a hash of t1.varchar1, t2.varchar1,
t2.varchar2 and t2.varchar2 as each is written and as you are
sorting (selecting, but ... ) on max(t2.timestamp) and
generate a series of the first four directory permuted values,
each in their own tree, and spread that across sufficient
spindles that the write and read load performance can keep up
As this point we need to look at the structure for the problem
domain
t1.stuff, t2.status == $some_val
and we lack enough to design further the structures needed ...
I had to automate precompution of 'cribs' of subsets of data
and pre-populate a cache for a call center application I wote,
to keep up with the database read load on one project. If I
were doing it again, I would drill in even more 'out of
database' cacheing
Financial markets data is often like this -- one needs very
fast access to arbitrary data, and usually just the latest
trade or the lastest day's trade data; after that it is
merely of less time critical access needs. We recently spent
several months with the trading-shim working in this area
-- Russ herrold
614 488 6954
---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us
To subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss