Ian Hardingham <i...@omroth.com> wrote: > Hey guys, thank you very much for the help so far. > > The list of calls which I make during the "end match section", which can > take 2 seconds, is:
The queries you show, on the amount of data you claim, can't possibly take 2 seconds. They should run nearly instantaneously. The time must be spent elsewhere. > SELECT * FROM multiturnTable WHERE id=? LIMIT 1 Since id is a primary key, you can drop LIMIT 1 clause. > UPDATE multiturnTable SET p1SubmitScore=1 WHERE id=? > UPDATE multiturnTable SET complete=1, score=? WHERE id=? You could probably combine these two in a single statement. > SELECT * FROM userTable WHERE name='?' twice I assume it's a typo, but just in case it's not, be aware that '?' is *not* a parameter placeholder, but a string consisting of a single character '?'. Make it SELECT * FROM userTable WHERE name=? > UPDATE userTable SET totalScore=?, totalRecord='?', dailyScore=?, > dailyRecord='?', dailyGameRecord='?', dailyGamesPlayed='?', > scoreStreak='?', scoreStreakNumber=? WHERE name='?'; twice Same here - all instances of '?' should be simply ?. > > > The setup of the various tables are: > > CREATE TABLE IF NOT EXISTS multiturnTable (id INTEGER PRIMARY KEY NOT > NULL UNIQUE, player1 TEXT COLLATE NOCASE, player2 COLLATE NOCASE, date PRIMARY KEY implies NOT NULL and UNIQUE. Should probably be "player2 TEXT COLLATE NOCASE" for symmetry. I don't think that could cause the slowdown, though. -- Igor Tandetnik _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users