Simon Slavin-2 wrote:
>
>
> On 21 Aug 2009, at 3:26am, pierr wrote:
>
>> I did not know the sequence in defining the field matters. This is
>> what I should have done.
>
> Sorry, I should have explained better. You were right: there is no
> difference. I was just rearranging the fields in the classic way:
> with the primary key column as the first column. It helps me think
> about how the database works. You did nothing wrong.
>
Hi Simon,
It do make a difference.
With this schema,
CREATE TABLE IF NOT EXISTS tblIndex(
frame_type INTEGER,
pts VARCHAR(5)
ts_start INTEGER PRIMARY KEY,
ts_end INTEGER,
)
There will be a rowid field in the database ; and there is a
sqlite_autoindex_tblIndex_1 build on ts_start automatically ; so 1,800,000
records (16bytes each) takes 62M .
With your schema , which is much better
CREATE TABLE IF NOT EXISTS tblIndex(
ts_start INTEGER PRIMARY KEY,
ts_end INTEGER,
frame_type INTEGER,
pts VARCHAR(5)
)
There will be NO rowid field in the database ;and 1,800,000 records
(16bytes each) takes only 35M.
>>> Whichever one of these is at fault, a delete command selecting on an
>>> indexed column and deleting 90000 records from a five column table
>>> should not take 17 seconds.
>>
>> I am sorry, I should have mentioned It (17 seconds to delete 90000)
>> was
>> tested on a 350M MIPS CPU. And after changing to the schema you
>> suggested,
>> it still take 17 seconds to delete 90000 records.
>> On my 1.8G Hz Ubuntu desktop it tooks 800ms. So is this delete
>> performance
>> is the limit we can achieve? Any other options I can improve this?
>
>
>> BTW: I used following option to build the libarary. Is there any
>> thing I
>> can expore here? (-O2 and -Os seem has no big difference on
>> performance.)
>> mips24k-linux-gcc -Os -fPIC -c *.c
>> mips24k-linux-gcc -shared -o mips_libsqlite3.so.1 sqlite3.o
>
>
> Putting these together, your 350 MIPS CPU machine is a MIPS 24K
> machine. There are various things to consider: not only CPU speed but
> also memory bandwidth, memory speed, hard disk throughput, and other
> things I have no idea about. And I have no idea what part threading
> would pay on such a platform. Sorry but I have no experience with
> these. Perhaps someone else here does.
>
> Simon.
>
Thanks for your insight,Simon.
--
View this message in context:
http://www.nabble.com/suggestion-on-the-database-design-tp25062134p25073602.html
Sent from the SQLite mailing list archive at Nabble.com.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users