DB & SQL
-
[Postgresql] tsquery, tsvector를 이용한 텍스트 검색DB & SQL 2023. 7. 11. 11:31
Like 조회의 한계 문자열을 에서 해당 단어가 포함되어있는지 여부를 찾을 때 like 를 사용하는 경우가 있습니다. 간편하지만 % 를 사용하면 해당 필드에 인덱스가 있음에도 이를 사용할 수 없어 성능이 떨어지는 단점이 있습니다. select * from posts where title like '%검색어%'; -- 인덱스를 사용할 수 없음 데이터가 적은 테이블에선 큰 문제가 되지 않지만, 주소검색과 같이 100만건이 넘는 테이블에서도 이렇게 사용할 수 있을까요? 이번시간엔 Postgresql 에서 문자열을 빠르게 검색할 수 있는 기법 중 하나인 tsquery, tsvector 를 사용하는 방법을 알아봅니다. tsvector? tsquery? tsvector 는 텍스트 검색을 위해 Postgresql 에..
-
[SQL Server] 단방향 암호화 함수 HASHBYTES 사용 시 유의사항DB & SQL 2022. 2. 9. 22:35
주로 로그인 암호를 저장할때, 단방향으로 암호화시켜 저장하고, 로그인시 입력받은 값을 암호화시킨 코드로 변환하여 저장된 암호화코드와 일치할때 정상적인 비밀번호를 입력했다고 가정하고 로그인시켜주게 만드는데, 이때 유용하게 쓰이는 함수가 HASHBYTES 이다. 그런데 해당 함수를 사용할때 유의해야 할 점이 있다. 입력받는 암호의 타입에 따라 HASH 함수의 결과가 다르다는 점이다. 아래 케이스는 @pw 란 변수에 "password"라는 암호평문을 입력한 후, HASHBYTES로 암호화시킨 결과이다. DECLARE @pw varchar(20) = 'password' SELECT HASHBYTES('SHA2_256', @pw) -- 결과 : 0x5E884898DA28047151D0E56F8DC629277360..
-
[SQL Server] ODBC를 통한 Linked Server 사용시 주의사항DB & SQL 2017. 5. 23. 23:14
* 해당내용은 SQL Server 2008 버전에서 확인한 사항이므로 최신버전과는 차이가 있을 수 있습니다. SQL Server 에는 다른 네트워크상에 있는 SQL 엔진과 연결하여 데이터를 가져오는 "연결된 서버(Linked Server)" 라는 기능이 있다. Linked Server의 설정방법은 여러가지가 있는데 크게 같은 MSSQL인가? 아닌가로 나뉜다. MSSQL간의 연결이라하면 직접 연결정보를 넣는가 아니면 서버명을 넣는가? 등등 방법이 세분화되지만, 그렇지 않은 DB엔진은 Linked Server로 쓰고자 한다면 ODBC를 찾게 될 것이다. ODBC를 이용한 이기종간 Linked Server 구성에 대해 알아보러 오신 분들은 http://sqlmvp.tistory.com/1072 를 참조하시면 ..
-
[MySQL] 원격지에서 root로 로그인하기DB & SQL 2015. 1. 6. 11:48
MySQL은 기본적인 admin 계정인 root에 대해 로컬에서만 로그인 할 수 있도록 설정되어 있다. (이걸 몰라서 포트 막힌줄 알고 방화벽만 신나게 보고 있었네 -_-;;) GUI 상에서의 해결법은 아래와 같으며, SQL 문으로설정하는 방법은 포스트 끝에 출처에서 확인가능하다. 1. DB가 설치된 로컬환경에서 Workbench를 실행하여 로컬접속을 한다. 2. Navigator의 Management 에서 "Users and Privlleges" 를 찾아 선택하면 User 설정화면이 나타난다. 여기서 설정된 여러 root 중 하나를 선택하여 "Limit to Hosts Matching"을 %로 바꿔주면 모든 IP에서 접속이 가능하도록 설정할 수 있다. (단, 로컬 IP는 제외) [그림 1] 설정할 수 ..
-
[MySQL] Windows환경 MySQL Notifier에서 Service 실행/종료를 할수 없을 경우DB & SQL 2015. 1. 4. 13:20
Windows 환경에 설치한 MySQL 의 Notifier 가 서비스를 실행/종료하려 하면 아래와같은 메시지가 뜰 수 있다. The service MySQL56 failed the most recent status change request with the message The service mysql56 was not found in the windows Services if problem persists please restart MySQL Notifier. 해결 방법은 아래와 같다. 1. C:\Users\[사용자폴더]\AppData\Roaming\Oracle\MySQL Notifier\settings.config 파일을 열어 ServiceName 부분에 현재 MySQL의 서비스 명으로 변경. (현재..