Java access speed (database or arrays)

Discussion in 'Java' started by Nino, Feb 3, 2007.

  1. Nino

    Nino Guest

    Hello,

    Quick question... well, at least it's short...

    Is it quicker to constantly query the database for information, or to
    query the database once, store the information into an array, and that
    array into a session variable to be used through different pieces of
    code?

    I am using MySQL and JSP. Don't know what other information might be
    pertinent as I really don't know how to test this...

    Thanks for any help,
    Nino Skilj
    Nino, Feb 3, 2007
    #1
    1. Advertising

  2. Nino wrote:
    > Is it quicker to constantly query the database for information, or to
    > query the database once, store the information into an array, and that
    > array into a session variable to be used through different pieces of
    > code?
    >
    > I am using MySQL and JSP. Don't know what other information might be
    > pertinent as I really don't know how to test this...


    It is much faster to cache in memory.

    The problems are:
    * data size - do you have enough memory to use for this purpose
    * getting the cached data invalidated if the data is changed in
    the database

    Arne
    =?ISO-8859-1?Q?Arne_Vajh=F8j?=, Feb 3, 2007
    #2
    1. Advertising

  3. Nino

    Guest

    On 2ÔÂ3ÈÕ, ÉÏÎç9ʱ38·Ö, "Nino" <> wrote:
    > Hello,
    >
    > Quick question... well, at least it's short...
    >
    > Is it quicker to constantly query the database for information, or to
    > query the database once, store the information into an array, and that
    > array into a session variable to be used through different pieces of
    > code?
    >
    > I am using MySQL and JSP. Don't know what other information might be
    > pertinent as I really don't know how to test this...
    >
    > Thanks for any help,
    > Nino Skilj


    Maybe you can check the memory database product ,google it.
    , Feb 3, 2007
    #3
  4. Nino

    Lew Guest

    Nino wrote:
    >> Is it quicker to constantly query the database for information, or to
    >> query the database once, store the information into an array, and that
    >> array into a session variable to be used through different pieces of
    >> code?
    >>
    >> I am using MySQL and JSP. Don't know what other information might be
    >> pertinent as I really don't know how to test this...


    Arne Vajhøj wrote:
    > It is much faster to cache in memory.
    >
    > The problems are:
    > * data size - do you have enough memory to use for this purpose
    > * getting the cached data invalidated if the data is changed in
    > the database


    JSP means Web app which means plan for concurrent access.

    Tradeoffs are complicated. You can cluster/farm app servers more easily than
    data stores, but data stores can be scaled pretty high and have awesome
    built-in caches. One way may be somewhat slower for a given user but allow
    better interleaving of concurrent users, so overall throughput improves.
    Caching things in application memory may speed up a user but limit the number
    of concurrent requests that fit.

    Naive expectations of performance often collapse in the face of massive
    concurrent access.

    Optimizations can occur both horizontally, e.g., throwing more servers at the
    web layer, or vertically, e.g., the proposed memory caching scheme or using a
    faster JDBC driver, or follow some other pattern, e.g., throwing edge caches
    into the mix.

    Andre's answer also hints at the difficulties of information latency and
    synchronization. How "soon" "after" a transaction should a user see the
    result? (In physics, relativity shows that frames of reference in relative
    motion can view events as simultaneous or not if the time interval is less
    than the "speed of light" latency in any frame of reference. Something similar
    pertains to information simultaneity, information latency and cognitive
    information processing. Consider Java's "happens-before" thread synchrony as
    an example.)

    It remains a dark art.

    - Lew
    Lew, Feb 4, 2007
    #4
  5. Nino

    Lew Guest

    Lew wrote:
    > Andre's answer

    Sorry (abashed toe-scuffing) I mean Arne's answer.

    - Lew
    Lew, Feb 4, 2007
    #5
  6. Nino

    Nino Guest

    Thank you Arne, Zheng and Lew... I guess there really isn't just one
    "right" way to do this. I guess I'll just have to figure out where it
    makes sense to cache the information and where to just pull it from
    the database. A lot of the data I need to access is pretty static, so
    data changing in the database shouldn't be too much of a concern...

    However, data size might be an issue... How can I tell how much memory
    is taken up when I store the data from a database into a session
    array? At what point will it be "too much"?

    Nino
    Nino, Feb 5, 2007
    #6
  7. Nino wrote:
    > However, data size might be an issue... How can I tell how much memory
    > is taken up when I store the data from a database into a session
    > array? At what point will it be "too much"?


    Just look at how much space the true data will use. There will
    be some overhead, but for something as non-exact at this I think
    you can ignore it.

    Arne
    =?ISO-8859-1?Q?Arne_Vajh=F8j?=, Feb 9, 2007
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ham

    I need speed Mr .Net....speed

    Ham, Oct 28, 2004, in forum: ASP .Net
    Replies:
    6
    Views:
    2,318
    Antony Baula
    Oct 29, 2004
  2. efiedler
    Replies:
    1
    Views:
    2,019
    Tim Ward
    Oct 9, 2003
  3. Casey Hawthorne
    Replies:
    16
    Views:
    1,198
  4. Replies:
    2
    Views:
    2,271
    Howard
    Apr 28, 2004
  5. Philipp
    Replies:
    21
    Views:
    1,109
    Philipp
    Jan 20, 2009
Loading...

Share This Page