전체 글201 4. Sphinx, MySQL 에서 스핑크스 직접 join하기 (sphinxSE) 이전 시간까지 스핑크스를 설치했고, sphinxQL을 이용하여 주로 사용하는 쿼리를 테스트 해봤으며, PHP 연동까지도 해봤습니다. 이번 장은 sphinxSE를 사용하는 방법을 설명하고자 합니다. 이글 부터 보시는 분들은 꼭 #1 부터 읽어주시기 바랍니다. sphinxSE는 searchd(스핑크스 데몬)와 대화하여 텍스트 검색을 가능하게 하는 스토리 엔진입니다. 스핑크스와 sphinxSE는 mariaDB에 내장된 전체 텍스트 검색(full text) 보다 빠르고 사용자 정의 가능한 대안으로 사용됩니다. MariaDB에서 sphinxSE 설치하기 # mysql에 스핑크스 엔진 설치 mysql> INSTALL SONAME 'ha_sphinx'; mysql> SHOW ENGINES\G +------------.. DB/DB 공통 관리 2023. 3. 26. 3. Sphinx스핑크스 쿼리 테스트 PHP 연동 스핑크스 설치 환경설정 (sphinx.conf) 인덱싱 생성 데몬 실행 sphinxQL 실행 이번에는 sphinxQL을 통해 쿼리를 날려보고 동작원리 및 유용한 쿼리를 연습하는 시간을 가져보려 합니다. 기본 sphinxQL를 접속해주세요. ]$ mysql -h0 -P9306 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 2.2.11-id64-release (95ae9a6) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c'.. DB/DB 공통 관리 2023. 3. 26. 1. Sphinx 이란 mysql 사용중인 사이트에 통합검색을 하나 달아야 합니다. 5백만 건 정도이며 text자료형의 필드가 다소 있는 상태입니다. 'like'는 'index'를 사용할 수 없기 때문에 논의 대상 자체가 아닙니다. myisam 구조라서 full-text 방식을 사용하고 있지만 varchar 도 검색엔진에 태워야 하는데 결국 부분적으로 'like'를 사용해야 하기때문에 대안이 아닙니다. 결국 엘라스틱서치(Elasticsearch)와 스핑크스(sphinx) 두개로 압축이 되었고, 당분간 스핑크스를 사용하기로 결정했습니다. 검색엔진은 크게 3가지의 기능을 가지고 있어야 합니다. 형태소 분석기, 색인(index)하는 기능, 마지막으로 검색하는 기능입니다. 검색엔진은 위의 3가지의 기능을 필수로 가지고 있어야 하는데,.. DB/DB 공통 관리 2023. 3. 26. 2. Sphinx 스핑크스 설치 및 환경 현재 mysql를 사용 중이며, 500만 건 text, varchar 등 혼합된 구조의 테이블이 10개 정도 존재합니다. 이들 대상으로 통합검색을 사이트에 구현해야 합니다. 몇가지 후보군 중에 스핑크스(sphinx)가 적당하다 판단하고 설치부터 테스트, 구현까지의 과정을 포스팅합니다. 아래는 스핑스크 테스트할 사용 계획입니다. mysql에는 zip_code라는 우편번호 테이블이 존재합니다. 스핑크스를 이용하여 zip_code의 text, varchar 컬럼을 인덱스 로드합니다. 인덱스 로드한 이름은 sph_zip_code로 명명합니다. sphinxQL 이용하여 쿼리 테스트를 합니다. sphinxSE 이용하여 zip_code와 sph_zip_code를 innser join 하여 통합검색 서비스를 합니다. .. DB/DB 공통 관리 2023. 3. 26. PHP 7.3~7.4 sqlsrv 모듈 설치 OS : CentOS 7.x PHP : 7.4 / 7.3 1. odbc install #RedHat Enterprise Server 6 curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo #RedHat Enterprise Server 7 curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo #RedHat Enterprise Server 8 and Oracle Linux 8 curl https://packages.microsoft.com/config/rhel/8/p.. WEB & WAS/PHP 2023. 3. 26. PHP curl 모듈에 openssl 연동 PHP 서버를 운영하다 보면 curl에 openssl 기능이 있어야 하는 서비스가 필요하다 대부분 PG사 통신할때 CURL에 openssl을 이용하는데 기본으로 설치하게 된다면 curl에는 openssl 이 enable 되어 있지 않다 아래 화면을 보면 기본으로 설치된 php 5.2 버전 이제 CURL에 openssl 을 enable 해 보자 1. curl 파일을 다운로드 후 압축 해제 후 컴파일 진행 # wget mirror.koreaidc.com/curl/curl-7.49.0.tar.gz # tar xvfz curl-7.49.0.tar.gz # cd curl-7.49.0 # ./configure --prefix=/usr/local/curl # make -j && make install # ll /us.. WEB & WAS/PHP 2023. 3. 26. mysql 상태 모니터링 # 상태 mysqladmin -u root -ppassword -i3 status 현재 내 서버의 상태 Uptime: 9063212 Threads: 7 Questions: 91587331 Slow queries: 104 Opens: 694 Flush tables: 1 Open tables: 229 Queries per second avg: 10.105 Uptime: 9063215 Threads: 7 Questions: 91587332 Slow queries: 104 Opens: 694 Flush tables: 1 Open tables: 229 Queries per second avg: 10.105 슬로우쿼리가 많은것으로 봐서 문제가 있다… 슬로우쿼리만 따로 로그로 남겨서 확인해 봐야겠네 # 프로세스 확인.. DB/DB 공통 관리 2023. 3. 26. Linux HDD,SSD 읽기, 쓰기 테스트 dd 명령어를 이용 if 읽기 / of,if=/dev/zero 쓰기 테스트 쓰기 테스트 [root@localhost ~]# time dd if=/dev/zero of=/var/test bs=8k count=1000000 1000000+0 records in 1000000+0 records out 8192000000 bytes (8.2 GB) copied, 8.92194 s, 918 MB/s real 0m8.924s user 0m0.151s sys 0m8.763s 읽기 테스트 [root@localhost ~]# time dd if=/var/test of=/dev/null bs=8k count=1000000 1000000+0 records in 1000000+0 records out 8192000000 by.. Linux OS/관리 2023. 3. 26. 캐시 메모리 삭제 pagecache 해제 echo 1 > /proc/sys/vm/drop_caches dentries, inodes 해제 echo 2 > /proc/sys/vm/drop_caches pagecache, dentries, inodes 모두 해제 echo 3 > /proc/sys/vm/drop_caches 플러싱하기 sync Linux OS/Tip 2023. 3. 26. tomcat 8005 포트늦게올라올때 yum install -y haveged WEB & WAS/Tomcat 2023. 3. 26. SSL 인증서 만료일 확인 [ 인증서 만료일확인 ] # openssl x509 -in /etc/letsencrypt/live/도메인/fullchain.pem -noout -dates Linux OS/Tip 2023. 3. 26. Apache SSL 인증서 비밀번호 자동입력하기 1. 패스워드를 기록한 스크립트 파일 생성 – 패스워드가 abc1234인 경우 아래와 같이 스크립트를 생성 # vi /usr/local/apache/conf/ssl/pass.sh #!/bin/sh echo abc1234 생성한 스크립트에 실행권한 설정 # ll /usr/local/apache/conf/ssl/pass.sh -rwx—— 1 root root 22 2016-04-20 12:24 /usr/local/apache/conf/ssl/pass.sh 2. httpd-ssl.conf 파일에 설정 추가 – SSLPassPhraseDialog builtin 부분 주석처리후 패스워드가 입력된 스크립트 파일 실행경로 입력 #SSLPassPhraseDialog builtin SSLPassPhraseDialog e.. WEB & WAS/Apache 2023. 3. 26. 이전 1 2 3 4 5 6 ··· 17 다음