In your profiling, do you determine whether the INSERT or the DELETE is the 
significantly slower than the other?


On Friday, 6 December 2013 14:43:59 UTC+1, Wickman wrote:
>
> Hi
>
> Caching the head is an idea, thanks. But it's adds and removes that takes 
> time as you say.
>
> I tried your approach without any index and it made no difference at all, 
> using these guys:
>
>   SELECT message FROM logs LIMIT 1
>   DELETE TOP 1 FROM logs
>
> Den fredagen den 6:e december 2013 kl. 13:36:46 UTC+1 skrev Kartweel:
>>
>> Hi, 
>>
>> Maybe you can cache the count and just query it on application startup. 
>> (Then just + and - it as you add and remove) 
>>
>> Probably not the issue though :) 
>>
>> I'm guessing the inserts and removes are slowing it down. The only way I 
>> can think (apart from Noel's varchar idea) is to not use an index (Not 
>> sure if that works if you don't create a primary key?). Hopefully then a 
>> table scan would match the record on the first row (because it is the 
>> first record), so may actually be pretty fast. So my idea is that you 
>> rely on the natural order of the database and hope that a table scan is 
>> really quick. It's a long shot... 
>>
>>
>> On 6/12/2013 5:26 PM, Wickman wrote: 
>> > Hi 
>> > 
>> > I have a database with just one table with a primary int and a CLOB 
>> > column: 
>> > 
>> > CREATE TABLE logs(id INT PRIMARY KEY AUTO_INCREMENT, message CLOB 
>> > 
>> > The database is embedded in my app 
>> > There will never be more than one connection open against it at any 
>> > one time. 
>> > 
>> > The table is used as a FIFO queue, so there are only a few queries 
>> > involved: 
>> > 
>> > add = conn.prepareStatement("INSERT INTO logs (id, message) 
>> > VALUES(null, ?)"); 
>> > peek = conn.prepareStatement("SELECT id, message FROM logs ORDER BY id 
>> > ASC LIMIT 1"); 
>> > size = conn.prepareStatement("SELECT COUNT(*) FROM logs"); 
>> > remove = conn.prepareStatement("DELETE FROM logs WHERE id = ?"); 
>> > 
>> > Ie. lots of "add last" and "remove first". 
>> > 
>> > I tried a few things, but nothing that really did any difference 
>> > except not using the journal (which is not really an option :) 
>> > 
>> > Any thoughts? 
>> > -- 
>> > You received this message because you are subscribed to the Google 
>> > Groups "H2 Database" group. 
>> > To unsubscribe from this group and stop receiving emails from it, send 
>> > an email to [email protected]. 
>> > To post to this group, send email to [email protected]. 
>> > Visit this group at http://groups.google.com/group/h2-database. 
>> > For more options, visit https://groups.google.com/groups/opt_out. 
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to