Have you tried putting the yearmonth in 2 different columns, not sure if it
will be
any faster, but I think it will, due to being a lot of them repeated.
Check you bandwidth and see if it's enough for your web users to access this
query
remotely.
Peace
> Hello,
>
> I'm using SQLite 2.8.16, on an embedded system, and I have a question.
> I have a database with one table, containing all my records. Each has a
> field 'yearmonth' which contains for example '200508', and also a field
> 'date', which indicates the day of that month. I want now to make an
> overview of a month and see which days contain a record. I've created a
> combined index on 'yearmonth' and 'date'. My query to do this is:
> 'select distinct date from mytable where yearmonth = 200508;' This
> takes about 50 seconds, which is really slow to show my users(it is
> displayed on a webpage).
>
> I noticed that this takes a long time, because I guess almost all
> records are checked. My other idea was to do 31 queries(one for every
> day), like this: 'select ID from mytable where yearmonth = 200508 and
> date = 1 limit 1;'. This second method does not give me anymore speed
> improvement.
>
> for example:
>
> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ...
> ^ ^ ^ ^
>
> the days marked with '^' contain records. To check with the second
> method for example day 7, it takes 2.6 seconds. Day 4 takes less, and
> from day 3 and lower, it is reacting immediately(like 40 ms). Day 8 and
> higher takes about 1 second each.
>
> When I do a random query om my database with select, and want to return
> 10 results for example, it takes 2.8 seconds. So getting 1 result, or
> getting 10 results only differs about 0.2 seconds. Is there anything I
> can do so things go faster? Maybe I should maintain a separate table
> with the monthoverview, but if it is possible to do some other solution
> it would be nicer ;-).
>
> Thanks for your time,
> kind regards,
> Tom,
>
>
>
>
>
>