Need Perfomance / Tuning Help

2005-11-21 Thread Marco Schierhorn

Hey, we´ve a site ( PHP ) where several 1.000 are online at the same time.
They´re running many sql statements.
Is there a way to find out which statements take a full table scan to 
optimize them ?


And i need some help with configuring the my.cnf.
Below you´ll find our one.
Which options should i optimize ?

uname -a :

Linux m30s06db.ispgateway.de 2.4.29-grsec #10 SMP Mon Jul 4 14:26:46 
CEST 2005 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux


And thats the my.cnf :

# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together 
with

# other programs (such as a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is 
/kunden/106120_40670/ms_appl/mysql_4.1.10a/var) or

# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the --help option.

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3307
socket = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3307
socket = /tmp/mysql.sock
skip-locking
key_buffer = 64M
max_allowed_packet = 1M
table_cache = 5M
sort_buffer_size = 1M
net_buffer_length = 8K
read_buffer_size = 1M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 16M
record_buffer=1M
log-slow-queries
long_query_time = 3

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the enable-named-pipe option) will render mysqld useless!
#
#
#skip-networking

# Replication Master Server (default)
# binary logging is required for replication
log-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
# the syntax is:
#
# CHANGE MASTER TO MASTER_HOST=host, MASTER_PORT=port,
# MASTER_USER=user, MASTER_PASSWORD=password ;
#
# where you replace host, user, password by quoted strings and
# port by the master's port number (3306 by default).
#
# Example:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
# MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
# start replication for the first time (even unsuccessfully, for example
# if you mistyped the password in master-password and the slave fails to
# connect), the slave will create a master.info file, and any later
# change in this file to the variables' values below will be ignored and
# overridden by the content of the master.info file, unless you shutdown
# the slave server, delete master.info and restart the slaver server.
# For that reason, you may want to leave the lines below untouched
# (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id = 2
#
# The replication master for this slave - required
#master-host = hostname
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user = username
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password = password
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port = port
#
# binary logging - not required for slaves, but recommended
#log-bin

# Point the following paths to different dedicated disks
#tmpdir = /tmp/
#log-update = /path-to-dedicated-directory/hostname

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 1

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /kunden/106120_40670/ms_appl/mysql_4.1.10a/var/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = 
/kunden/106120_40670/ms_appl/mysql_4.1.10a/var/

#innodb_log_arch_dir = /kunden/106120_40670/ms_appl/mysql_4.1.10a/var/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M

Re: Need Perfomance / Tuning Help

2005-11-21 Thread Gleb Paharenko
Hello.



Is there a way to find out which statements take a full table scan to

optimize them ?



See:

  http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html







Marco Schierhorn wrote:

 Hey, we´ve a site ( PHP ) where several 1.000 are online at the same time.

 They´re running many sql statements.

 Is there a way to find out which statements take a full table scan to

 optimize them ?

 

 And i need some help with configuring the my.cnf.

 Below you´ll find our one.

 Which options should i optimize ?

 

 uname -a :

 

 Linux m30s06db.ispgateway.de 2.4.29-grsec #10 SMP Mon Jul 4 14:26:46

 CEST 2005 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux

 

 And thats the my.cnf :

 

 # Example MySQL config file for medium systems.

 #

 # This is for a system with little memory (32M - 64M) where MySQL plays

 # an important part, or systems up to 128M where MySQL is used together

 with

 # other programs (such as a web server)

 #

 # You can copy this file to

 # /etc/my.cnf to set global options,

 # mysql-data-dir/my.cnf to set server-specific options (in this

 # installation this directory is

 /kunden/106120_40670/ms_appl/mysql_4.1.10a/var) or

 # ~/.my.cnf to set user-specific options.

 #

 # In this file, you can use all long options that a program supports.

 # If you want to know which options a program supports, run the program

 # with the --help option.

 

 # The following options will be passed to all MySQL clients

 [client]

 #password = your_password

 port = 3307

 socket = /tmp/mysql.sock

 

 # Here follows entries for some specific programs

 

 # The MySQL server

 [mysqld]

 port = 3307

 socket = /tmp/mysql.sock

 skip-locking

 key_buffer = 64M

 max_allowed_packet = 1M

 table_cache = 5M

 sort_buffer_size = 1M

 net_buffer_length = 8K

 read_buffer_size = 1M

 read_rnd_buffer_size = 512K

 myisam_sort_buffer_size = 16M

 record_buffer=1M

 log-slow-queries

 long_query_time = 3

 

 # Don't listen on a TCP/IP port at all. This can be a security enhancement,

 # if all processes that need to connect to mysqld run on the same host.

 # All interaction with mysqld must be made via Unix sockets or named pipes.

 # Note that using this option without enabling named pipes on Windows

 # (via the enable-named-pipe option) will render mysqld useless!

 #

 #

 #skip-networking

 

 # Replication Master Server (default)

 # binary logging is required for replication

 log-bin

 

 # required unique id between 1 and 2^32 - 1

 # defaults to 1 if master-host is not set

 # but will not function as a master if omitted

 server-id = 1

 

 # Replication Slave (comment out master section to use this)

 #

 # To configure this host as a replication slave, you can choose between

 # two methods :

 #

 # 1) Use the CHANGE MASTER TO command (fully described in our manual) -

 # the syntax is:

 #

 # CHANGE MASTER TO MASTER_HOST=host, MASTER_PORT=port,

 # MASTER_USER=user, MASTER_PASSWORD=password ;

 #

 # where you replace host, user, password by quoted strings and

 # port by the master's port number (3306 by default).

 #

 # Example:

 #

 # CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,

 # MASTER_USER='joe', MASTER_PASSWORD='secret';

 #

 # OR

 #

 # 2) Set the variables below. However, in case you choose this method, then

 # start replication for the first time (even unsuccessfully, for example

 # if you mistyped the password in master-password and the slave fails to

 # connect), the slave will create a master.info file, and any later

 # change in this file to the variables' values below will be ignored and

 # overridden by the content of the master.info file, unless you shutdown

 # the slave server, delete master.info and restart the slaver server.

 # For that reason, you may want to leave the lines below untouched

 # (commented) and instead use CHANGE MASTER TO (see above)

 #

 # required unique id between 2 and 2^32 - 1

 # (and different from the master)

 # defaults to 2 if master-host is set

 # but will not function as a slave if omitted

 #server-id = 2

 #

 # The replication master for this slave - required

 #master-host = hostname

 #

 # The username the slave will use for authentication when connecting

 # to the master - required

 #master-user = username

 #

 # The password the slave will authenticate with when connecting to

 # the master - required

 #master-password = password

 #

 # The port the master is listening on.

 # optional - defaults to 3306

 #master-port = port

 #

 # binary logging - not required for slaves, but recommended

 #log-bin

 

 # Point the following paths to different dedicated disks

 #tmpdir = /tmp/

 #log-update = /path-to-dedicated-directory/hostname

 

 # Uncomment the following if you are using BDB tables

 #bdb_cache_size = 4M

 #bdb_max_lock = 1

 

 # Uncomment the following if you are using InnoDB tables

 #innodb_data_home_dir = 

Perfomance Tuning

2003-08-10 Thread mixo
I have just installed redhat linux 9 which ships with mysql
3.23.56. Mysql has to be setup so that it can use innodb tables,
and data inserts (blobs) should be able to handle at least 8M
at a time. The machine has two P III 933MHz CPU's,
1.128G RAM (512M*2 + 128M), and a 36 Gig hd with 1 Gig swap and
3 equal size ext3 partitions. What would be the recomended
setup for good performance considering that the db will have
about 15 users for 9 hours in a day, and about 10 or so users
throughout the day who wont be conistenly using the db.
My configuration looks like this so far:

/etc/mysql.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max_allowed_packet=16M
#InnoDB
innodb_data_file_path = ibdata/ibdata1:2000M:autoextend
innodb_data_home_dir = /var/lib/mysql
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
/etc/mysql.cnf
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]