Could anyone tell me what is wrong - after ive put the database on the server query takes ages to execute:
SELECT company.company_id,company.enhancement FROM company LEFT JOIN company_in_cat_100 ON company.company_id = company_in_cat_100.company_id where company_in_cat_100.category_id =53;
1st run: 39627 rows in set (1 min 50.44 sec)
later : ~10 sec
I dont really understand why - I have tested everything on my local machine, and it was maximum 0,5-1,2sec.
Structure dump:
CREATE TABLE company_in_cat_100
( id
mediumint(7) NOT NULL auto_increment, company_id
mediumint(7) unsigned NOT NULL default ‘0’, category_id
smallint(4) unsigned NOT NULL default ‘0’, PRIMARY KEY (id
), KEY category_id
(category_id
)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=158105 ;
CREATE TABLE company
( company_id
mediumint(7) unsigned NOT NULL auto_increment, name
varchar(100) NOT NULL default ‘’, add1
varchar(64) NOT NULL default ‘’, add2
varchar(64) NOT NULL default ‘’, add3
varchar(64) NOT NULL default ‘’, town_id
smallint(4) unsigned NOT NULL default ‘0’, county_id
mediumint(6) unsigned NOT NULL default ‘0’, postcode
varchar(9) NOT NULL default ‘’, telephone
varchar(30) NOT NULL default ‘’, description_text
varchar(255) NOT NULL default ‘’, enhancement
tinyint(1) NOT NULL default ‘0’, PRIMARY KEY (company_id
), KEY name
(name
), KEY town
(town_id
)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1707942 ;
Explein Query:
±—±------------±-------------------±-------±--------------±------------±--------±----------------------------------------------±------±------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |±—±------------±-------------------±-------±--------------±------------±--------±----------------------------------------------±------±------------+| 1 | SIMPLE | company_in_cat_100 | ref | category_id | category_id | 2 | const | 34695 | Using where || 1 | SIMPLE | company | eq_ref | PRIMARY | PRIMARY | 3 | thisisbusnew_en.company_in_cat_100.company_id | 1 | |±—±------------±-------------------±-------±--------------±------------±--------±----------------------------------------------±------±------------+
Show variables:
±--------------------------------±---------------------------------------------+| Variable_name | Value |±--------------------------------±---------------------------------------------+| back_log | 50 || basedir | / || binlog_cache_size | 32768 || bulk_insert_buffer_size | 8388608 || character_set_client | latin1 || character_set_connection | latin1 || character_set_database | latin1 || character_set_results | latin1 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ || collation_connection | latin1_swedish_ci || collation_database | latin1_swedish_ci || collation_server | latin1_swedish_ci || concurrent_insert | ON || connect_timeout | 5 || datadir | /var/lib/mysql/ || date_format | %Y-%m-%d || datetime_format | %Y-%m-%d %H:%i:%s || default_week_format | 0 || delay_key_write | ON || delayed_insert_limit | 100 || delayed_insert_timeout | 300 || delayed_queue_size | 1000 || expire_logs_days | 0 || flush | OFF || flush_time | 0 || ft_boolean_syntax | + -><()~*:“”&| || ft_max_word_len | 84 || ft_min_word_len | 4 || ft_query_expansion_limit | 20 || ft_stopword_file | (built-in) || group_concat_max_len | 1024 || have_archive | NO || have_bdb | NO || have_blackhole_engine | NO || have_compress | YES || have_crypt | YES || have_csv | NO || have_example_engine | NO || have_geometry | YES || have_innodb | YES || have_isam | NO || have_merge_engine | YES || have_ndbcluster | NO || have_openssl | NO || have_query_cache | YES || have_raid | NO || have_rtree_keys | YES || have_symlink | YES || init_connect | || init_file | || init_slave | || innodb_additional_mem_pool_size | 1048576 || innodb_autoextend_increment | 8 || innodb_buffer_pool_awe_mem_mb | 0 || innodb_buffer_pool_size | 8388608 || innodb_data_file_path | ibdata1:10M:autoextend || innodb_data_home_dir | || innodb_fast_shutdown | ON || innodb_file_io_threads | 4 || innodb_file_per_table | OFF || innodb_flush_log_at_trx_commit | 1 || innodb_flush_method | || innodb_force_recovery | 0 || innodb_lock_wait_timeout | 50 || innodb_locks_unsafe_for_binlog | OFF || innodb_log_arch_dir | || innodb_log_archive | OFF || innodb_log_buffer_size | 1048576 || innodb_log_file_size | 5242880 || innodb_log_files_in_group | 2 || innodb_log_group_home_dir | ./ || innodb_max_dirty_pages_pct | 90 || innodb_max_purge_lag | 0 || innodb_mirrored_log_groups | 1 || innodb_open_files | 300 || innodb_table_locks | ON || innodb_thread_concurrency | 8 || interactive_timeout | 28800 || join_buffer_size | 131072 || key_buffer_size | 8388600 || key_cache_age_threshold | 300 || key_cache_block_size | 1024 || key_cache_division_limit | 100 || language | /usr/share/mysql/english/ || large_files_support | ON || lc_time_names | en_US || license | GPL || local_infile | ON || locked_in_memory | OFF || log | OFF || log_bin | OFF || log_error | || log_slave_updates | OFF || log_slow_queries | OFF || log_update | OFF || log_warnings | 1 || long_query_time | 10 || low_priority_updates | OFF || lower_case_file_system | OFF || lower_case_table_names | 0 || max_allowed_packet | 1048576 || max_binlog_cache_size | 4294967295 || max_binlog_size | 1073741824 || max_connect_errors | 10 || max_connections | 100 || max_delayed_threads | 20 || max_error_count | 64 || max_heap_table_size | 16777216 || max_insert_delayed_threads | 20 || max_join_size | 4294967295 || max_length_for_sort_data | 1024 || max_prepared_stmt_count | 16382 || max_relay_log_size | 0 || max_seeks_for_key | 4294967295 || max_sort_length | 1024 || max_tmp_tables | 32 || max_user_connections | 0 || max_write_lock_count | 4294967295 || myisam_data_pointer_size | 4 || myisam_max_extra_sort_file_size | 2147483648 || myisam_max_sort_file_size | 2147483647 || myisam_recover_options | OFF || myisam_repair_threads | 1 || myisam_sort_buffer_size | 8388608 || myisam_stats_method | nulls_unequal || net_buffer_length | 16384 || net_read_timeout | 30 || net_retry_count | 10 || net_write_timeout | 60 || new | OFF || old_passwords | ON || open_files_limit | 1024 || pid_file | /var/lib/mysql/STEAM3.POBOXHOSTING.CO.UK.pid || port | 3306 || preload_buffer_size | 32768 || prepared_stmt_count | 0 || protocol_version | 10 || query_alloc_block_size | 8192 || query_cache_limit | 1048576 || query_cache_min_res_unit | 4096 || query_cache_size | 0 || query_cache_type | ON || query_cache_wlock_invalidate | OFF || query_prealloc_size | 8192 || range_alloc_block_size | 2048 || read_buffer_size | 131072 || read_only | OFF || read_rnd_buffer_size | 262144 || relay_log_purge | ON || relay_log_space_limit | 0 || rpl_recovery_rank | 0 || secure_auth | OFF || server_id | 0 || skip_external_locking | ON || skip_networking | OFF || skip_show_database | OFF || slave_net_timeout | 3600 || slave_transaction_retries | 0 || slow_launch_time | 2 || socket | /var/lib/mysql/mysql.sock || sort_buffer_size | 2097144 || sql_mode | || sql_notes | ON || sql_warnings | ON || storage_engine | MyISAM || sync_binlog | 0 || sync_frm | ON || sync_replication | 0 || sync_replication_slave_id | 0 || sync_replication_timeout | 0 || system_time_zone | BST || table_cache | 64 || table_type | MyISAM || thread_cache_size | 0 || thread_stack | 196608 || time_format | %H:%i:%s || time_zone | SYSTEM || tmp_table_size | 33554432 || tmpdir | || transaction_alloc_block_size | 8192 || transaction_prealloc_size | 4096 || tx_isolation | REPEATABLE-READ || version | 4.1.22-standard || version_comment | MySQL Community Edition - Standard (GPL) || version_compile_machine | i686 || version_compile_os | pc-linux-gnu || wait_timeout | 28800 |±--------------------------------±---------------------------------------------+
System:linux with 512 RAM memory
One more thing - while running query mysql uses only 3% of CPU.
Ive tried everything. Please let me know what you think.