From: Oleg B. <ph...@ph...> - 2009-05-22 09:46:47
|
On Fri, May 22, 2009 at 01:11:51AM -0400, Stef Telford wrote: > SQLObject development should -really- focus on is speed. There are many areas to improve SQLObject - code, tests, documentation, development process, communication skills of the developers. Let's add speed to the list. But well, it is open source, developers scratch their itches, and speed is not our biggest itch. SQLObject certainly isn't optimized for mass insertion, this is a well known fact. SQLObject does a lot of thing behind the scene. For mass insertion it is better to use SQLBuilder lower-level API (underdocumented, yes). You are welcome to start a project to improve SQLObject. Or at least you can help by explaining how SA optimizes mass insertion. On an INSERT SQLObject does: -- creates an instance; -- sends INSERT query; -- sends SELECT query to get the row back - this is necessary to get back autogenerated fields - autoincremented IDs, timestamps, system variables and such; this is what slows down SQLObject so much; -- caches the row in its internal cache; this is what makes SQLObject to eat memory; SQLObject periodically clears the cache thus spending even more time. What SA does and does not do? Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |