VP> Can you supply us with an example? Some explain plans to corroborate your VP> reported slowness. Of course. Here is the query. It is big and ugly, I'm curently working on system optimization. But why the same query is good at one machine and bad at another?
SELECT ... FROM positionReports p INNER JOIN drivers d ON p.driverID=d.ID LEFT JOIN reverseGeo rg ON rg.latitude=p.latitude AND rg.longitude=p.longitude LEFT JOIN reverseGeo rg1 ON rg1.latitude=p.cellLatitude AND rg1.longitude=p.cellLongitude LEFT JOIN companyPref cp ON cp.companyID = d.companyID LEFT JOIN events ev ON p.eventID=ev.ID INNER JOIN eventGroups evg ON ev.eventGroup=evg.ID LEFT JOIN reportDetails rd ON rd.reportID=p.ID WHERE p.`date`='2004-03-07' AND p.`driverID` IN (92,85,96,93,86,74,72,83,89,97,78,77,84,75,81,91,98,90,88,105,99,100,82,103,73,95,102,94,87,80,76,104,101,489,79) AND evg.ID IN ('1','2','3','4','5','6','7','8','9','10','11') GROUP BY 1,2,3,4,5,6,7,8,9,10 ORDER BY p.gmtTime DESC, p.time DESC LIMIT 0,201 +-------+--------+---------------------------------------------------------------------------+-------------------------------+---------+----------------+------+----------------------------------------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+--------+---------------------------------------------------------------------------+-------------------------------+---------+----------------+------+----------------------------------------------+ | p | range | IDX_POSITIONREPORTS_DRIVER_ID,IDX_POSITIONREPORTS_DATE | IDX_POSITIONREPORTS_DRIVER_ID | 8 | NULL | 5679 | Using where; Using temporary; Using filesort | | d | eq_ref | PRIMARY,IDX_UNIQUE_DRIVERS_ID | PRIMARY | 8 | p.driverID | 1 | | | rg | ref | IDX_REVERSE_GEO_LATITUDE,IDX_REVERSE_GEO_LONGITUDE,IDX_REVERSE_GEO_LATLON | IDX_REVERSE_GEO_LATITUDE | 17 | p.latitude | 1 | | | rg1 | ref | IDX_REVERSE_GEO_LATITUDE,IDX_REVERSE_GEO_LONGITUDE,IDX_REVERSE_GEO_LATLON | IDX_REVERSE_GEO_LATITUDE | 17 | p.cellLatitude | 1 | | | cp | ALL | NULL | NULL | NULL | NULL | 587 | | | ev | eq_ref | PRIMARY,IDX_UNIQUE_EVENTS_ID,IDX_UNIQUE_EVENTGROUPS_ID | PRIMARY | 8 | p.eventID | 1 | | | evg | eq_ref | PRIMARY | PRIMARY | 8 | ev.eventGroup | 1 | Using where; Using index | | rd | ref | IDX_REPORTDETAILS_REPORTID | IDX_REPORTDETAILS_REPORTID | 8 | p.ID | 1 | | +-------+--------+---------------------------------------------------------------------------+-------------------------------+---------+----------------+------+----------------------------------------------+ 8 rows in set (0.13 sec) In process list I always see "Copying to tmp table" . I guess the system is limited by hard disk, top shows low process load. show variables Result # Variable_name Value 1 back_log 50 2 basedir /usr/local/mysql/ 3 binlog_cache_size 32768 4 bulk_insert_buffer_size 8388608 5 character_set latin1 6 character_sets latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ujis dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5 7 concurrent_insert ON 8 connect_timeout 5 9 convert_character_set 10 datadir /var/lib/mysql/ 11 default_week_format 0 12 delay_key_write ON 13 delayed_insert_limit 100 14 delayed_insert_timeout 300 15 delayed_queue_size 1000 16 flush OFF 17 flush_time 0 18 ft_boolean_syntax + -><()~*:""&| 19 ft_min_word_len 4 20 ft_max_word_len 254 21 ft_max_word_len_for_sort 20 22 ft_stopword_file (built-in) 23 have_bdb NO 24 have_crypt YES 25 have_innodb YES 26 have_isam YES 27 have_raid NO 28 have_symlink YES 29 have_openssl NO 30 have_query_cache YES 31 init_file 32 innodb_additional_mem_pool_size 67108864 33 innodb_buffer_pool_size 268435456 34 innodb_data_file_path ibdata1:2000M:autoextend 35 innodb_data_home_dir /var/lib/mysql/ibdata/ 36 innodb_file_io_threads 4 37 innodb_force_recovery 0 38 innodb_thread_concurrency 8 39 innodb_flush_log_at_trx_commit 0 40 innodb_fast_shutdown ON 41 innodb_flush_method fdatasync 42 innodb_lock_wait_timeout 50 43 innodb_log_arch_dir /var/lib/mysql/iblogs/ 44 innodb_log_archive OFF 45 innodb_log_buffer_size 52428800 46 innodb_log_file_size 104857600 47 innodb_log_files_in_group 2 48 innodb_log_group_home_dir /var/lib/mysql/iblogs/ 49 innodb_mirrored_log_groups 1 50 innodb_max_dirty_pages_pct 90 51 interactive_timeout 28800 52 join_buffer_size 131072 53 key_buffer_size 8388600 54 language /usr/local/mysql/share/mysql/english/ 55 large_files_support ON 56 local_infile ON 57 locked_in_memory OFF 58 log OFF 59 log_update OFF 60 log_bin OFF 61 log_slave_updates OFF 62 log_slow_queries ON 63 log_warnings OFF 64 long_query_time 3 65 low_priority_updates OFF 66 lower_case_table_names 0 67 max_allowed_packet 1048576 68 max_binlog_cache_size 4294967295 69 max_binlog_size 1073741824 70 max_connections 2000 71 max_connect_errors 10 72 max_delayed_threads 20 73 max_heap_table_size 16777216 74 max_join_size 4294967295 75 max_relay_log_size 0 76 max_seeks_for_key 4294967295 77 max_sort_length 1024 78 max_user_connections 0 79 max_tmp_tables 32 80 max_write_lock_count 4294967295 81 myisam_max_extra_sort_file_size 268435456 82 myisam_max_sort_file_size 2147483647 83 myisam_repair_threads 1 84 myisam_recover_options OFF 85 myisam_sort_buffer_size 8388608 86 net_buffer_length 16384 87 net_read_timeout 30 88 net_retry_count 10 89 net_write_timeout 60 90 new OFF 91 open_files_limit 10010 92 pid_file /var/lib/mysql/aaa.pid 93 log_error 94 port 3306 95 protocol_version 10 96 query_alloc_block_size 8192 97 query_cache_limit 1048576 98 query_cache_size 0 99 query_cache_type ON 100 query_prealloc_size 8192 101 range_alloc_block_size 2048 102 read_buffer_size 131072 103 read_only OFF 104 read_rnd_buffer_size 262144 105 rpl_recovery_rank 0 106 server_id 0 107 slave_net_timeout 3600 108 skip_external_locking ON 109 skip_networking OFF 110 skip_show_database OFF 111 slow_launch_time 2 112 socket /tmp/mysql.sock 113 sort_buffer_size 2097144 114 sql_mode 0 115 table_cache 64 116 table_type MYISAM 117 thread_cache_size 0 118 thread_stack 126976 119 tx_isolation REPEATABLE-READ 120 timezone EST 121 tmp_table_size 33554432 122 tmpdir /tmp/ 123 transaction_alloc_block_size 8192 124 transaction_prealloc_size 4096 125 version 4.0.18-standard-log 126 version_comment Official MySQL-standard binary 127 wait_timeout 28800 my.cnf: # This is for large system with memory of 1G-2G where the system runs mainly # MySQL. # # The MySQL server [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 384M max_allowed_packet = 1M table_cache = 512 sort_buffer_size = 2M read_buffer_size = 2M myisam_sort_buffer_size = 64M thread_cache = 8 query_cache_size = 32M # Try number of CPU's*2 for thread_concurrency thread_concurrency = 8 log-slow-queries set-variable = long_query_time=3 set-variable = max_connections=2000 # Uncomment the following if you are using InnoDB tables innodb_data_home_dir = /var/lib/mysql/ibdata/ innodb_data_file_path = ibdata1:2000M:autoextend innodb_log_group_home_dir = /var/lib/mysql/iblogs/ innodb_log_archive=0 #innodb_log_arch_dir = /var/lib/mysql/iblogs/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 256M innodb_additional_mem_pool_size = 64M # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 100M #innodb_log_buffer_size = 8M innodb_log_buffer_size = 50M #innodb_flush_log_at_trx_commit = 1 #lots of small transactions innodb_flush_log_at_trx_commit = 0 innodb_lock_wait_timeout = 50 innodb_flush_method=fdatasync Thank you. -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]