2009년 10월 30일
MySQL - 덤프 입력 혹은 대량 인서트시 속도 저하.
bin/mysqld_safe --delay-key-write-for-all-tables --user=mysql &
LOCK 건 테이블에 대해서 해제될 때까지 키 체크 모류.
# by | 2009/10/30 19:01 | LINUX | 트랙백 | 덧글(0)
# by | 2009/10/30 19:01 | LINUX | 트랙백 | 덧글(0)
TEMP_VAR=$(exec /usr/bin/mysql --socket=/tmp/mysql.sock -u root -p"password" dbname -N -s -e "select min(columnname) from TAB_NAME where CONDITION = 57")
-N (--skip-column-names) : 결과화면에 컬럼 이름을 없애주는 옵션
-s (--silent) : 결과화면에서 격자를 제거하는 옵션
1. 결과는 라인 별로 저장된다.
2. 결과가 여러 라인일 경우에도 for in 명령을 사용해서 분류해낼 수 있다.
3. 컬럼의 분리는 구분자로 파싱해내는 수 밖에 없는듯하다.
ex) 모든 데이터베이스의 모든 테이블에 대한 덤프를 추출하는 방법. -출처:http://www.nanzoa.com/
CentOS 5.2에서는 부분적으로 문법을 수정해주지 않으면 동작하지 않았다.
db_root_pw='비밀번호'
db_list=`echo "show databases;" | mysql -N -uroot -p"$db_root_pw"`
for db in $db_list ;do
table_list=`echo "show tables" | mysql -N -uroot -p"$db_root_pw" $db`
for table in $table_list ; do
mysqldump -uroot -p"$db_root_pw" $db $table > $db.${table}.sql
done
done
# by | 2009/07/24 14:55 | 트랙백 | 덧글(0)
cat /usr/include/linux/sched.h
------------------------------------
#define _STK_LIM (8*1024*1024) // 8M
리눅스에서는 커널 레벨에서 각 프로세스에 할당 가능한 스택 사이즈에 제한을 둔다.
(사이즈는 위와 다를 수 있다. 여하간 제한을 둔다.)
그 사이즈를 넘어 메모리를 할당하면 세그멘테이션 에러를 내며 프로세스가 죽는다.
뭐... 내가 그렇게 할당했다는건 아니다.
malloc()을 이용해 메모리를 동적으로 할당하면 그냥 편하다.
그리고 새로운 문제로 머리가 좀 아플것 같다.
# by | 2009/06/19 19:54 | LINUX | 트랙백 | 덧글(0)
vi /home/test/test1.sh
#!/bin/bash
if [ -z "$1" ]
then
echo "usage: `basename $0` queryfilename"
exit 111
fi
exit 0
vi /home/test/test2.sh
#!/bin/bash
/home/test/test1.sh
echo $? // 도스 스크립트에서는 echo %ERRORLEVEL%
./test2.sh
# by | 2009/03/31 14:13 | LINUX | 트랙백 | 덧글(0)
◀ 이전 페이지 다음 페이지 ▶