mysql

    면접을 위한 CS 전공지식 노트 4장

    데이터베이스 데이터베이스 기본 데이터베이스는 일정한 규칙,혹은 규악을 통해 구조화되어 저장되는 데이터의 모음. 해당 데이터베이스를 제어 , 관리하는 통합 시스템을 DBMS라고하며 , 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입,삭제,조회 등을 수행할 수 있다. 또한 데이터베이스는 실시간 접근과 동시 공유가 가능합니다. 엔티티란 ? 사람 ,장소,물건,사건,개념 여러개의 속성을 지닌 명사를 의미 예) 회원 엔티티 : 이름,아이디,주소,전화번호 속성을 갖습니다. 약한 엔터티와 강한 엔터티란 ? 예를 들어 A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라 종속적이라면 A는 약한 엔터티이고 B는 강한 엔터티가 됩니다. 예) 방은 건물안에만 존재할 수 있기떄문에 방은 약개체..

    mysql index를 타지않는 경우

    인덱스를 타지 않는 경우 1. 인덱스 컬럼의 변형 select * from table where LOWER(name) ='word'; select * from table where idx - 1 = 5; 이 처럼 인덱스에 변형을 가하게 되면, DBMS가 인덱스를 이용하지 않는다. 2. 인덱스 컬럼의 내부적인 데이터 변환 select * from table where age = '30' 문자값 데이터타입을 갖는 컬럼에 ‘값’ → 값 을 하지 말고 정확한 데이터 타입을 넣어야 인덱스를 탈 수 있다. 3. NOT 또는 IN 연산자 사용 NOT일 경우에도 인덱스를 타긴 타지만, 일반적으로, NOT에 사용된 값이 아닌 데이터의 비율이 높은 경우가 많기 때문에 인덱스를 타지 않는 경우가 많다. 마찬가지로 IN일 경..

    Querydsl 방언 사용하기

    Dialect JPA를 사용하면 데이터베이스 문법을 잘 알지 못해도 hibernate에 의해 설정한 데이터베이스의 쿼리로 바꿔준다. SQL,JPQL은 문자열인 반면 QUERYDSL을 사용하게 되면 java코드로 쿼리를 작성할 수 있게되고 컴파일 시점에 문법오류 를 확인할 수 있다는 큰 장점이 있다. application.yml에 사용하는 DB의 dialect가 설정되어있다. spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect FullText Search는 Dialect에 등록된 함수가 아니였기 때문에 querydsl 에서 사용할 수 없기 떄문에 별도로 커스텀해줘야한다. application.yml 설정 jpa: show-sql: true h..

    mysql DB 데이터 백업/복구(export/import) dump뜨는법

    내 로컬에 있는 mySQL의 사용자 정보나 테이블을 import/export 하고 싶을 때 sql 파일을 빼거나 밀어넣어 보자 주의해야 할 것은 mysql 접속해서 입력하는 게 아니라, mysql 밖 터미널에서 입력하는 것이다 ① DB Export mysqldump –u DB사용자 –p DB명 > 파일명 ex) mysqldump -u root -p shabDB > /home/user/test.sql ⑴ 사용자를 포함한 전체 DB를 export할 때는 -A 옵션 사용 mysqldump -u root -p -A > 파일명 ex) mysqldump -u root -p -A > test.sql ⑵ DB에서 특정 테이블만 제외하고 export할 때는 --ignore-table 옵션 사용 mysqldump –u D..