database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 23796 게시물 읽기
No. 23796
쿼리 튜닝 문의입니다.
작성자
이기명(fishlover)
작성일
2005-05-22 19:08
조회수
4,092

쿼리 튜닝이 구체적으로 어떤건지 궁금합니다.

 

제가 쿼리 튜닝 하라는 소리를 들어서요.. ㅎ;

 

쿼리 튜닝하면 효과 있을꺼라고 하더라구요..

 

문제점은 바로 이겁니다.

 

# Time: 050522 18:41:34
# User@Host: fishlover[fishlover] @ localhost.nameip.net [127.0.0.1]
# Query_time: 63 Lock_time: 0 Rows_sent: 0 Rows_examined: 0
ALTER TABLE BNET ADD COLUMN auth_admin_ch_gaon VARCHAR(128);

 

 

한 4만개정도의 줄이 있구요

 

칸도 좀 많습니다. (줄 칸의 정확한 명칭을 잘 몰라서..)

 

한칸 늘리는 쿼리가 이렇게 많이 걸려서.. 쿼리 튜닝을 해보라고 하더라구요..

 

my.cnf 파일도 올려야 할꺼 같아서 첨부하겠습니다.

 

서버 사양은

 

셀 600, 램 256 , FreeBSD, MySql 4.0.19 입니다.

 

 

 

# 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 /var/db/mysql) 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 = 3306
socket = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 2M
table_cache = 128
sort_buffer_size = 1M
net_buffer_length = 16K
myisam_sort_buffer_size = 16M


log_slow_queries = ON
log-slow-queries = /fbs/slow-query.log
long_query_time = 1

thread_cache = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 1

# 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 = 10000

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/db/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/db/mysql/
#innodb_log_arch_dir = /var/db/mysql/
# 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
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

이 글에 대한 댓글이 총 3건 있습니다.

Use ALTER TABLE ... ORDER BY expr1, expr2, ... if you mostly retrieve rows in expr1, expr2, ... order. By using this option after extensive changes to the table, you may be able to get higher performance.

------------------------------------------------------------

alter table 문에도 튜닝할 꺼리가 있다는걸 처음 알았네요...  ^^

------------------------------------------------------------

ALTER TABLE works by making a temporary copy of the original table. The alteration is performed on the copy, then the original table is deleted and the new one is renamed. While ALTER TABLE is executing, the original table is readable by other clients. Updates and writes to the table are stalled until the new table is ready, then are automatically redirected to the new table without any failed updates.

이경환(babocom)님이 2005-05-22 19:45에 작성한 댓글입니다.

헤헤.. 해석이랑 응용좀 해주세요.. ㅜㅜ

부탁드려요.. ^^

 

 

※쿼리문 튜닝인가요??

이기명(fishlover)님이 2005-05-22 21:01에 작성한 댓글입니다.

(적당히 의역입니다)

expr1, expr2, ... 순서대로 행을 받아내고 싶다면 ALTER TABLE ... ORDER BY expr1, expr2, ... 를 사용하라. ORDER BY 옵션을 사용하면 테이블의 변경이 이루어진후 성능 향상이 될 수 있다.

ALTER TABLE을 실행하면 원래 테이블의 복사본을 만든다. 복사본에서 테이블 구조 변경이 일어나고 원래 테이블이 지워진 뒤 복사본의 이름을 원래 테이블의 이름으로 변경한다. ALTER TABLE이 동작하는 동안 클라이언트는 원 테이블을 읽을 수(readable) 있다. 테이블 내의 값의 변경(updates and writes)은 새 테이블이 준비될 때까지 기다리게 되고 준비가 되면 아무런 누락없이 새 테이블에 적용된다. 

 

니트넷(neatnet)님이 2005-05-31 10:17에 작성한 댓글입니다.
이 댓글은 2005-05-31 10:18에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
23799innodb table space문제입니다 [1]
dddars
2005-05-23
1799
23798xp_sp2환경의 asp에서 mysql 사용시 에러 문의...
김민혁
2005-05-23
2372
23797공백 입력될 경우 [3]
2005-05-23
1639
23796쿼리 튜닝 문의입니다. [3]
이기명
2005-05-22
4092
23795mysql db 를 백업해서 다른 컴에 복구한후 자료를 볼 수 없음. [3]
BlueSpy
2005-05-22
1596
23794update질문...이에요 [2]
LinDol
2005-05-21
1525
23793mysql접속 좀 도와주세요 ㅠㅠ [1]
크룬
2005-05-21
1860
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다