Antoine, Monday, August 19, 2002, 3:57:50 PM, you wrote: A> I have tried to upgrade from MySQL 3.23.51 to 4.0.2-alpha (both source A> distribution, same environment, same compiler, same configuration file) A> and I was puzzled to see that my application became 5 to 10 times slower.
A> Most queries in my application (at least the critical part) are write A> queries (UPDATEs, INSERTs, REPLACEs). I have isolated a simple example A> of a query which has become really slower - but other, bigger or more A> complex queries show the same slowdown. A> Just do the following under 3.23.51 : A> CREATE TABLE route_state_change ( A> date BIGINT UNSIGNED NOT NULL, A> date_end BIGINT UNSIGNED NOT NULL, A> duration BIGINT UNSIGNED NOT NULL, A> route_k BIGINT UNSIGNED NOT NULL, A> state ENUM ('down', 'up') NOT NULL, A> KEY date (date), A> KEY route (route_k, date_end), A> KEY state (state)); A> Then try the following query (with the mysql client) : A> INSERT route_state_change (date, route_k, state) VALUES A> (10297598884803,0x84F00F09383D4C11,'down'), A> (10297598884803,0xCE7E157EC14416A5,'down'), A> (10297598884803,0xD665AB1D45B0A608,'down'), A> (10297598884803,0xFD940CAC8CFD55A6,'down'), A> (10297598884803,0x3DDB9286093F33C6,'down'), A> (10297598884803,0xEC1D5ADC0D3C5DBB,'down'), A> (10297598884803,0x51CB867E525127CC,'down'), A> (10297598884803,0xCAA6EFB009DC2A02,'down'), A> (10297598884803,0xF649CFA95CEDA18C,'down'); A> (just a plain example from my app) A> In 3.23.51, it always takes 0.00 sec (even repeated several times). A> After switching to 4.0.2, it always takes 0.08 sec. Which seems huge given A> that we have a nearly empty table and the query is rather simple ! I tested your example on 4.0.2, 3.23.51, 3.23.52 and got on all versions the same result 0.00-0.01 sec A> Here is the config file /etc/my.cnf : A> [client] A> port = 3306 A> socket = /tmp/mysql.sock A> [mysqld] A> port = 3306 A> socket = /tmp/mysql.sock A> skip-locking A> skip-innodb A> set-variable = key_buffer=512M A> set-variable = max_allowed_packet=1M A> set-variable = table_cache=1024 A> set-variable = sort_buffer=64M A> set-variable = join_buffer_size=32M A> set-variable = record_buffer=32M A> set-variable = thread_cache=8 A> set-variable = tmp_table_size=256M A> set-variable = max_heap_table_size=128M A> set-variable = myisam_sort_buffer_size=64M A> server-id = 1 Do you use so huge queries that you really need sort_buffer=64M and record_buffer=32M? Don't forget that record_buffer and sort_buffer are specified per-thread. -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net <___/ www.mysql.com --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php