본문 바로가기
데이터베이스

DBA 면접 질문 (2) 21 ~ 40

by 흰색남자 2023. 1. 19.

21. 서브쿼리가 무엇인가요?

SQL문에 포함된 또 다른 SQL문. 

 

22. 서브쿼리의 결과 종류는 어떤 것들이 있나요?

단일행 서브쿼리 : 단일 행만을 리턴하는 서브쿼리

다중행 서브쿼리 : 다중행을 리턴하는 서브쿼라

다중컬럼 서브쿼리 : 다중컬럼을 리턴하는 서브쿼리

인라인 뷰 : 뷰 형태로 테이블을 리턴하는 서브쿼리 // FROM절

상호 연관 서브쿼리 : 메인 쿼리의 결과로 서브 쿼리가 실행되고 그 결과로 메인 쿼리가 또 실행되는 서로 연관된 쿼리

 

23. 프로파일러는 무엇인가요?

성능 개선을 위해 DB에 부하를 주는 쿼리를 찾아야하는 경우 프로파일러는 사용하여 분석을 진행함.

 

24. 사용자정의함수는 무엇인가요?

프로시저랑 의미는 똑같지만 리턴값의 유무로 나뉩니다. 프로시저는 리턴값이 자유롭지만, 사용자정의함수는 하나의 결과값만 잇어야합ㄴ다

 

26. SQL Server의 TCP/IP 포트는 무엇인가요? 바꿀 수 있나요?

mysql은 3306, redis 6379, 몽고디비 27017 등이 잇습니다.

mysql은 my,cnf파일을 통해 바꿀 수 있습니다.

 

27. SQL Server의 인증 모드는 어떤것이 있나요? 바꿀 수 있나요?

my.cnf 파일의 default_authentication_plugin을 통해 변경이 가능하며 caching_sha2_password, mysql_native_password 

 

28. SQL Server 로긴 유저와 암호는 어디에 저장되어 있나요?

유저테이블에 저장되는 것으로 알고 있습니다.

 

31. 저장프로시저는 재귀호출이 될까요? 몇단계까지 가능할까요?

저장 프로시저, 함수, 트리거 또는 뷰의 최대 중첩 수준은 32레벨을 넘을 수 없게 지정되어 있다.
어쩔 수 없이 해당 중첩을 분기하거나 32 이상은 포기해야 한다.

 

33. RAISERROR 는 무엇인가요..?

Sql Server에서 사용자가 임의로 자신만의 에러 메시지를 생성하게 해준다. 그리고 그 에러 메시지를 응용프로그램쪽으로 반환

34. 로그전달은 무엇인가요?

35. 지역 임시 테이블과 전역 임시 테이블의 차이는 무엇인가요?

36. 컨텍스트 스위칭이란?

프로세스가 자원을 할당받아 실행됐을때 인트럽트 신호에 의해 프로세스가 중지되고 다른 프로세스가 실행되는 과정입니다. 

PCB에 실행중이었던 프로세스의 정보가 저장되고, 다른 프로세스가 자원을 할당받음

 

37. NOSQL이란

비관계형 데이터베이스 유형을 가리키며 이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 저장합니다.

RDBMS는 테이블과 관계를 통해 데이터를 저장했다면, NOSQL은 키 벨류, 도큐먼트, 그래프 등 다양한 방식으로 데이터를 저장합니다.

 

38. 복제의 종류는 어떤것들이 있는지 차이점을 설명해주세요.

bin log를 통한 복제와 gtid기반 복제가 있습니다.

binlog는 binlog를 마스터 스레드를 통해 슬레이브 노드의 relay로그로 전송하여 실행하는 방식이고, gtid는 트랜잭션에 고유한 식별자를 부여하여 복제하는 방식이다. 

 

39. LRU란?

가장 오래된 페이지를 교체하는 알고리즘.

 

40. 유저의 권한 변경 키워드 2개는 무엇이 있나요?

계정 권한 부여

grant 권한 on 데이터베이스.테이블 to 계정@호스트;

grant all privileges on *.* to dbuser@'%'; -- 모든 권한 부여

grant all privileges on sampledb.* to dbuser@'%' ; -- 특정 DB의 모든 테이블에 모든 권한 부여

grant select, insert, update, delete on amumal.* to dbuser@'%' ; -- 특정 DB의 모든 테이블에 특정 권한 부여

 

계정 권한 삭제

revoke 권한 on 데이터베이스.테이블 from 계정@호스트;

revoke all privileges on *.* from dbuser@'%'; -- 모든 권한 삭제

revoke all privileges on sampledb.* from dbuser@'%' ; -- 특정 DB의 모든 테이블에 모든 권한 삭제

revoke select, insert, update, delete on amumal.* from dbuser@'%' ;  -- 특정 DB의 모든 테이블에 특정 권한 삭제

계정 생성

create user 계정@호스트 identified by 패스워드;

create user dbuser@localhost identified by 'password'; -- 로컬에서만 접근 가능
create user dbuser@192.168.1.72 identified by 'password'; -- 특정 IP에서 접근 가능

create user dbuser@'%' identified by 'password'; -- 어디에서나 접근 가능

 

계정 삭제

drop user 계정@호스트;

drop user dbuser@localhost;

drop user dbuser@192.168.1.72;

drop user dbuser@'%';

'데이터베이스' 카테고리의 다른 글

MySQL과 Postgresql의 차이  (1) 2023.02.20
LSM Tree ( Log Structured Merge Tree )  (0) 2023.01.29
DBA 면접 질문 ( 1 ) 1~20  (0) 2023.01.19
MySQL 힌트  (0) 2023.01.18
my.cnf ( my.ini ) MySQL 최적화와 관련된 변수.  (0) 2023.01.14