1. Please don't cross-post -- it just confuses us. The reply is going to 
php-db.

2. It seems that you are using imp_log incorrectly. Either you add a record 
to it for each hit, or for a camp_id value you update the impressions 
field. Which is it? If the former, then a count() will give you what you 
need, if the second, then a simple retrieval of the value stored in 
impressions should do the trick.

3. If the second, then camp_id should be indexed uniquely.

4. Do count() and sum() return the same values?

Hope this helps - Miles Thompson

At 01:51 PM 1/10/2002 +0000, Nomor Satu Bajingan wrote:
>Hello Friends,
>I've some performance problem, when I do sum() functions on my tables it 
>took 5-7 minutes to return the results.. here is my story:
>I've table with 2461566 rows here is my table structure:
>mysql> describe imp_log;
>+--------------+--------------+------+-----+---------------------+----------------+
>| Field        | Type         | Null | Key | Default             | Extra
>      |
>+--------------+--------------+------+-----+---------------------+----------------+
>| sno          | bigint(10)   |      | PRI | NULL                | 
>auto_increment |
>| advt_id      | varchar(20)  |      |     |                     |
>      |
>| timestamp    | datetime     |      | MUL | 0000-00-00 00:00:00 |
>      |
>| hostname     | varchar(120) |      |     |                     |
>      |
>| remoteip     | varchar(15)  |      |     |                     |
>      |
>| username     | varchar(20)  |      | MUL |                     |
>      |
>| camp_id      | varchar(8)   |      | MUL |                     |
>      |
>| browser_os   | varchar(100) |      |     |                     |
>      |
>| impressions  | int(11)      |      |     | 0                   |
>      |
>| cookiestring | varchar(128) |      | MUL |                     |
>      |
>| status       | char(1)      |      |     | N                   |
>      |
>+--------------+--------------+------+-----+---------------------+----------------+
>the problem is I want to sum the impressions from advt_id number 17 (this 
>advt_id has 855517 records on imp_log table).. I want to sum the 
>impressions..here is my query:
>select sum(impressions) impr from imp_log where camp_id='17';
>but it took 5 minutes for me to do the query... but if I use 
>count(impressions) it only tooks under 10 sec
>mysql> select count(impressions) from imp_log;
>+--------------------+
>| count(impressions) |
>+--------------------+
>|            2461566 |
>+--------------------+
>1 row in set (0.06 sec)
>How to optimize the query ? the strange things is MySQL only uses a little 
>of cpu time when I did sum() functions...Can I force MySQL to use all the 
>cpu time ?
>
>I uses Linux Mandrake 7.0 with MySQL 4.0.0 alpha-max-log
>here is the MySQL variables...
>mysql> show variables;
>+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
>| Variable_name                   | Value
>
>
>                  |
>+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
>| back_log                        | 50
>
>
>                  |
>| basedir                         | /
>
>
>                  |
>| bdb_cache_size                  | 8388600
>
>
>                  |
>| bdb_log_buffer_size             | 32768
>
>
>                  |
>| bdb_home                        | /var/lib/mysql/
>
>
>                  |
>| bdb_max_lock                    | 10000
>
>
>                  |
>| bdb_logdir                      |
>
>
>                  |
>| bdb_shared_data                 | OFF
>
>
>                  |
>| bdb_tmpdir                      | /data/ads/
>
>
>                  |
>| bdb_version                     | Sleepycat Software: Berkeley DB 
>3.2.9a: (October 10, 
>2001)
>
>                  |
>| binlog_cache_size               | 32768
>
>
>                  |
>| character_set                   | latin1
>
>
>                  |
>| 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 |
>| concurrent_insert               | ON
>
>
>                  |
>| connect_timeout                 | 5
>
>
>                  |
>| datadir                         | /var/lib/mysql/
>
>
>                  |
>| delay_key_write                 | ON
>
>
>                  |
>| delayed_insert_limit            | 100
>
>
>                  |
>| delayed_insert_timeout          | 300
>
>
>                  |
>| delayed_queue_size              | 1000
>
>
>                  |
>| flush                           | OFF
>
>
>                  |
>| flush_time                      | 0
>
>
>                  |
>| ft_min_word_len                 | 4
>
>
>                  |
>| ft_max_word_len                 | 254
>
>
>                  |
>| ft_max_word_len_for_sort        | 20
>
>
>                  |
>| have_bdb                        | YES
>
>
>                  |
>| have_innodb                     | YES
>
>
>                  |
>| have_isam                       | YES
>
>
>                  |
>| have_raid                       | NO
>
>
>                  |
>| have_symlink                    | YES
>
>
>                  |
>| have_openssl                    | NO
>
>
>                  |
>| init_file                       |
>
>
>                  |
>| innodb_data_file_path           | ibdata1:64M
>
>
>                  |
>| innodb_data_home_dir            |
>
>
>                  |
>| innodb_flush_log_at_trx_commit  | OFF
>
>
>                  |
>| innodb_log_arch_dir             |
>
>
>                  |
>| innodb_log_archive              | OFF
>
>
>                  |
>| innodb_log_group_home_dir       | /var/lib/mysql/
>
>
>                  |
>| innodb_flush_method             |
>
>
>                  |
>| interactive_timeout             | 28800
>
>
>                  |
>| join_buffer_size                | 131072
>
>
>                  |
>| key_buffer_size                 | 16773120
>
>
>                  |
>| language                        | /usr/share/mysql/english/
>
>
>                  |
>| large_files_support             | ON
>
>
>                  |
>| locked_in_memory                | OFF
>
>
>                  |
>| log                             | ON
>
>
>                  |
>| log_update                      | OFF
>
>
>                  |
>| log_bin                         | OFF
>
>
>                  |
>| log_slave_updates               | OFF
>
>
>                  |
>| log_long_queries                | OFF
>
>
>                  |
>| long_query_time                 | 10
>
>
>                  |
>| low_priority_updates            | OFF
>
>
>                  |
>| lower_case_table_names          | 0
>
>
>                  |
>| max_allowed_packet              | 1047552
>
>
>                  |
>| max_binlog_cache_size           | 4294967295
>
>
>                  |
>| max_binlog_size                 | 1073741824
>
>
>                  |
>| max_connections                 | 100
>
>
>                  |
>| max_connect_errors              | 10
>
>
>                  |
>| max_delayed_threads             | 20
>
>
>                  |
>| max_heap_table_size             | 16777216
>
>
>                  |
>| max_join_size                   | 4294967295
>
>
>                  |
>| max_sort_length                 | 1024
>
>
>                  |
>| max_user_connections            | 0
>
>
>                  |
>| max_tmp_tables                  | 32
>
>
>                  |
>| max_write_lock_count            | 4294967295
>
>
>                  |
>| myisam_bulk_insert_tree_size    | 8388608
>
>
>                  |
>| myisam_max_extra_sort_file_size | 256
>
>
>                  |
>| myisam_max_sort_file_size       | 2047
>
>
>                  |
>| myisam_recover_options          | OFF
>
>
>                  |
>| myisam_sort_buffer_size         | 8388608
>
>
>                  |
>| net_buffer_length               | 16384
>
>
>                  |
>| net_read_timeout                | 30
>
>
>                  |
>| net_retry_count                 | 10
>
>
>                  |
>| net_write_timeout               | 60
>
>
>                  |
>| open_files_limit                | 0
>
>
>                  |
>| pid_file                        | /var/lib/mysql/hercules.pid
>
>
>                  |
>| port                            | 3306
>
>
>                  |
>| protocol_version                | 10
>
>
>                  |
>| record_buffer                   | 131072
>
>
>                  |
>| record_rnd_buffer               | 131072
>
>
>                  |
>| rpl_recovery_rank               | 0
>
>
>                  |
>| query_buffer_size               | 0
>
>
>                  |
>| safe_show_database              | OFF
>
>
>                  |
>| server_id                       | 0
>
>
>                  |
>| slave_net_timeout               | 3600
>
>
>                  |
>| skip_locking                    | ON
>
>
>                  |
>| skip_networking                 | OFF
>
>
>                  |
>| skip_show_database              | OFF
>
>
>                  |
>| slow_launch_time                | 2
>
>
>                  |
>| socket                          | /var/lib/mysql/mysql.sock
>
>
>                  |
>| sort_buffer                     | 2097144
>
>
>                  |
>| sql_mode                        | 0
>
>
>                  |
>| table_cache                     | 64
>
>
>                  |
>| table_type                      | MYISAM
>
>
>                  |
>| thread_cache_size               | 0
>
>
>                  |
>| thread_stack                    | 131072
>
>
>                  |
>| transaction_isolation           | READ-COMMITTED
>
>
>                  |
>| timezone                        | JAVT
>
>
>                  |
>| tmp_table_size                  | 33554432
>
>
>                  |
>| tmpdir                          | /data/ads/
>
>
>                  |
>| version                         | 4.0.0-alpha-Max-log
>
>
>                  |
>| wait_timeout                    | 28800
>
>
>                  |
>+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
>102 rows in set (0.03 sec)
>
>and here is the extended-status:
>+--------------------------+----------+
>| Variable_name            | Value    |
>+--------------------------+----------+
>| Aborted_clients          | 10       |
>| Aborted_connects         | 3        |
>| Bytes_received           | 82124    |
>| Bytes_sent               | 5290836  |
>| Connections              | 60       |
>| Created_tmp_disk_tables  | 0        |
>| Created_tmp_tables       | 115      |
>| Created_tmp_files        | 0        |
>| Delayed_insert_threads   | 0        |
>| Delayed_writes           | 0        |
>| Delayed_errors           | 0        |
>| Flush_commands           | 1        |
>| Handler_delete           | 62       |
>| Handler_read_first       | 75       |
>| Handler_read_key         | 375      |
>| Handler_read_next        | 2261     |
>| Handler_read_prev        | 0        |
>| Handler_read_rnd         | 42       |
>| Handler_read_rnd_next    | 20452381 |
>| Handler_update           | 0        |
>| Handler_write            | 931      |
>| Key_blocks_used          | 35       |
>| Key_read_requests        | 2311     |
>| Key_reads                | 35       |
>| Key_write_requests       | 103      |
>| Key_writes               | 34       |
>| Max_used_connections     | 11       |
>| Not_flushed_key_blocks   | 0        |
>| Not_flushed_delayed_rows | 0        |
>| Open_tables              | 16       |
>| Open_files               | 31       |
>| Open_streams             | 0        |
>| Opened_tables            | 22       |
>| Questions                | 848      |
>| Select_full_join         | 0        |
>| Select_full_range_join   | 0        |
>| Select_range             | 70       |
>| Select_range_check       | 0        |
>| Select_scan              | 247      |
>| Slave_running            | OFF      |
>| Slave_open_temp_tables   | 0        |
>| Slow_launch_threads      | 0        |
>| Slow_queries             | 8        |
>| Sort_merge_passes        | 0        |
>| Sort_range               | 0        |
>| Sort_rows                | 42       |
>| Sort_scan                | 6        |
>| Table_locks_immediate    | 678      |
>| Table_locks_waited       | 0        |
>| Threads_cached           | 0        |
>| Threads_created          | 59       |
>| Threads_connected        | 9        |
>| Threads_running          | 1        |
>| Uptime                   | 525435   |
>+--------------------------+----------+
>
>Can I more optimize the query ? I already try to use indexing..but the 
>query still slow..
>
>Any help, comments, critics would be very appreciated
>
>best regards,
>Bajingan
>
>
>_________________________________________________________________
>MSN Photos is the easiest way to share and print your photos: 
>http://photos.msn.com/support/worldwide.aspx
>
>
>--
>PHP General Mailing List (http://www.php.net/)
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>To contact the list administrators, e-mail: [EMAIL PROTECTED]


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to