mysql count(*) takes long time? Any better options? -
mysql> select count(*) id_renewal ; +----------+ | count(*) | +----------+ | 13633246 | +----------+
is taking more 10 mins exec output. can tuned in server parameters? should run query every hr reports, query taking 10mins not feasible business folks...
any options keep in memory in oracle?
mysql> show variables '%cache%'; +------------------------------+----------------------+ | variable_name | value | +------------------------------+----------------------+ | binlog_cache_size | 32768 | | have_query_cache | yes | | key_cache_age_threshold | 300 | | key_cache_block_size | 1024 | | key_cache_division_limit | 100 | | max_binlog_cache_size | 18446744073709547520 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 134217728 | | query_cache_type | on | | query_cache_wlock_invalidate | off | | table_definition_cache | 512 | | table_open_cache | 2048 | | thread_cache_size | 16 | +------------------------------+----------------------+ 14 rows in set (0.00 sec) mysql> show global status '%qc%'; +-------------------------+-----------+ | variable_name | value | +-------------------------+-----------+ | qcache_free_blocks | 118 | | qcache_free_memory | 133367960 | | qcache_hits | 71077421 | | qcache_inserts | 137390744 | | qcache_lowmem_prunes | 18066 | | qcache_not_cached | 120209332 | | qcache_queries_in_cache | 427 | | qcache_total_blocks | 990 | +-------------------------+-----------+ mysql> select count(*) idea_sub_renewal ; +----------+ | count(*) | +----------+ | 13633246 | +----------+ top - 17:40:19 148 days, 17:51, 10 users, load average: 0.83, 0.91, 1.00 tasks: 257 total, 1 running, 251 sleeping, 0 stopped, 5 zombie cpu(s): 2.0%us, 0.6%sy, 0.0%ni, 97.1%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st mem: 8167348k total, 8124120k used, 43228k free, 33928k buffers swap: 16386260k total, 709864k used, 15676396k free, 4615456k cached pid user pr ni virt res shr s %cpu %mem time+ command 26329 sym 19 0 1195m 64m 7456 s 13.3 0.8 66:34.40 java 12079 mysql 15 0 1725m 463m 4840 s 6.3 5.8 24227:57 mysqld 477 sym 18 0 674m 62m 7260 s 1.0 0.8 2:25.59 java 26948 powerdev 16 0 12896 1232 824 s 0.7 0.0 0:07.90 top 18843 sym 19 0 1271m 494m 7364 s 0.3 6.2 10:19.89 java 26379 sym 21 0 1203m 299m 7464 s 0.3 3.8 1:36.90 java 29872 sym 18 0 1238m 869m 7816 s 0.3 10.9 7:42.33 java
with innodb count() works tables million rows. can use hack see how many rows in table, if aren't using - use explain.
mysql> explain select count(1) history; +----+-------------+---------+-------+---------------+-----------+---------+------+----------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | | +----+-------------+---------+-------+---------------+-----------+---------+------+----------+-------------+ | 1 | simple | history | index | null | history_1 | 12 | null | 17227419 | using index | +----+-------------+---------+-------+---------------+-----------+---------+------+----------+-------------+ 1 row in set (0.01 sec)
in column 'rows' can see number of rows.
Comments
Post a Comment