전체 글 387

MySQL Fulltext Indexing and searching

MySQL은 3.23.23 버전부터 Fulltext 인덱스를 지원한다. varchar 와 text 컬럼에 fulltext 인덱스를 지원하고 MySQL에서 Fulltext search 를 하기 위해서는 특별한 SQL 구문을 사용해야 한다. FULLTEXT 인덱스를 어떤 컬럼에 정의하려 할 때, 다른 인덱스 처럼 fulltext 인덱스도 여러 컬럼을 포함할 수 있다. 다음과 같이 Fulltext 인덱스를 정의한다. ALTER TABLE TB_Test ADD FULLTEXT(col1, col2); 이렇게 Fulltext 인덱스를 생성하면, MATCH, AGAINST 구문을 이용해 검색할 수 있다. SELECT (col1, col2 FROM TB_TestWHERE MATCH (col1, col2) AGAINST..

MySQL ERROR 1069

MySQL error 1069 는 다음과 같이 나타난다. ERROR 1069 (42000): Too many keys specified; max 64 keys allowed 일반적으로는 타당한 사용은 아니고, MySQL 테이블에 64개의 인덱스보다 더 많이 요구했을 때 발생한다. 그러나 이 에러메시지는 반드시 이런 경우에만 나타나는 것이 아니라, 명시적으로 인덱스를 지정하지 않았을 경우에도 발생할 수 있다. mysql> alter table TB_1 add index id_1 (name); Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> alter table TB_1 add index id_1 (name);ER..

MySQL Index 유형별 적용

MySQL에서 인덱싱 컬럼은 일반적으로 속도를 향상시키나 적절한 유형의 인덱스는 성능에 더 큰 효율을 가져온다. SQL 구문에 최적화하기 위해 인덱스를 적용할 경우에는 일반적으로 4가지 인덱스 유형이 있다. 1. Column Index2. Concatenated Index3. Covering Index4. Partial Index 1. Column Index 단순하게 말해서, 단일 컬럼의 성능을 높이기 위한 인덱스이다. SELECT user_name, adress FROM TB_Test WHERE id = 1;id 컬럼에 인덱스를 추가한다.ALTER TABLE TB_Test ADD INDEX (id); 2. Concatenated Index 종종 테이블들에 많은 단일 컬럼 인덱스가 있는 것을 볼 수 있다..

Apache 모듈정보

기본적으로 포함하지 않는 모듈 기본적으로 컴파일되는 모듈도 있지만, 모듈을 사용하려면 직접 혹은 most나 all 키워드를 사용하여 명시적으로 포함해야 하는 모듈이 있다. 그래서 아래 옵션들을 사용한다. --enable-auth-anon mod_auth_anon이 제공하는 익명사용자 접근 기능을 사용한다. --enable-auth-dbm mod_auth_dbm은 사용자명과 암호를 DBM형식의 데이터베이스 파일에 저장하는 HTTP Basic Authentication에서 사용한다. 모듈을 사용하려면 이 옵션을 사용한다. --enable-auth-digest mod_auth_digest가 제공하는 RFC2617 Digest authentication을 사용한다. 이 모듈은 정보를 일반 문자파일에 저장한다. ..

Apache 환경변수

configure의 선택을 무시하거나 관례와 다른 이름이나 위치에 있는 라이브러리와 프로그램을 찾도록 도와주는 유용한 환경변수들이 있다. CC 컴파일에 사용할 C 컴파일러 명령어를 지정한다. CFLAGS 컴파일때 사용하길 바라는 C 컴파일러 옵션을 지정한다. CPP 사용할 C 선처리기 명령어를 지정한다. CPPFLAGS C/C++ 선처리기 옵션. 예를 들어, 헤더파일이 관례와 달리 includedir 디렉토리에 있다면 -Iincludedir을 사용한다. LDFLAGS 링커 옵션. 예를 들어, 라이브러리가 관례와 달리 libdir 디렉토리에 있다면 -Llibdir을 사용한다. by 김영준

OpenSSL의 소개

OpenSSL의 소개 o 정의와 특징 - TLS(Transport Layer Security)와 SSL(Secure Sockets Layer) 프로토콜을 구현하는 오픈소스 - C언어로 작성되어 범용 암호화 라이브러리 지원 o 알고리즘 - 암호문(cipher) AES, DES, Triple DES, CAST-128, IDEA, RC2, RC4, IC5, blowfish, Camellia, GOST 28147-89 - 암호학의 해시 함수 MD5, MD2, SHA-1, SHA-2, MDC-2 - 공개 키 암호 방식 RSA, DSA, Diffie-Hellman key exchange, Elliptic curve cryptography, GOST R 34.10-2001 o OS별 OpenSSL 확인 방법 - SU..

JBoss Clustering 구성을 위한 사전점검

1. Multicast 확인 o 설정배경 - Clustering 구성 instance 사이에서 Mulicast를 통해 통신한다. - JBoss는 TCP도 설정은 가능하나 속도를 위해 UDP를 권고한다. o Multicast 테스트 Receiver Test jboss-6.1.0.Final/server/all1/lib$ java -classpath jgroups.jar org.jgroups.tests.McastReceiverTest -mcast_addr 228.1.2.3 Socket=0.0.0.0/0.0.0.0:5555, bind interface=0.0.0.0/0.0.0.0 test [sender=192.168.18.128:40132] Sender Test jboss-6.1.0.Final/server/al..

Busy한 MySQL 서버에서 Deadlock Troubleshooting

관리자가 관리해야 하는 서버에는 많은 deadlock이 있습니다. 특히 비즈니스 기능적으로 중요한 몇 개의 테이블에서 자주 발생합니다. 데드락이 생기는 쿼리는 복잡하고, 많은 경우에 큰 데이터를 읽습니다. 대부분 오래 진행되는 트랜잭션에서 데드락이 발생할 수 있고, 짧은 쿼리에서 하나의 row에서 발생하기도 합니다. 많은 트랜잭션 시스템에서 데드락은 일상 생활입니다. 어플리케이션은 반드시 데드락을 다룰 수 있어야 합니다. 그 밖에도, 유저 트리거와 유저가 시도하는 것들을 포기해야 하더라도 작업이 종료될 필요가 있습니다. 종종 실패하기도 하고, 성공 할 때까지 재 시도를 하기도 합니다. 이 교착 상태 프로세스에 소요되는 시간에 따라, 그 낭비 작업의 엄청난 금액을 나타낼 수 있습니다. 여러번 재시작을 하려..