How to optimize a MySQL database

Hello there, I need your help.
How to optimize a MySQL database ?
Your help would be very appreciated.

The server is:

  1. Windows Server 2003 Enterprise edition service pack 2
  2. Pentium IV 3.40 GHz
  3. 4 GB of Ram

My Db is:

  1. Num of tables: 611
  2. Rows: 12.947.216
  3. Data Len: 1,9 GB
  4. Index Len: 0,8 GB

This is the file my.ini:

# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# Generated by the MySQL Server Instance Configuration Wizard
#
[client]
port=3306

[mysql]
default-character-set=latin1

[mysqld]
port=3306

basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
default-character-set=latin1
default-storage-engine=INNODB

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100

query_cache_size=16M
table_cache=512
tmp_table_size=18M
thread_cache_size=16

myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=35M

key_buffer_size=64M
read_buffer_size=128k
read_rnd_buffer_size=256K
sort_buffer_size=256K

innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=47M
innodb_log_file_size=24M
innodb_thread_concurrency=8

log-error="C:\\LogsMySQL\\log-error.log"
log-slow-queries="C:\\LogsMySQL\\log-slow-queries.log"
log-warnings