알고리즘, MySQL

우정·2023년 1월 13일
0

[내일배움캠프] TIL

목록 보기
40/50

프로그래머스

특정 문자 제거하기

  • Java
class Solution {
    public String solution(String my_string, String letter) {
        String answer = my_string.replace(letter, "");
        return answer;
    }
}
  • Python
def solution(my_string, letter):
    answer = my_string.replace(letter, '')
    return answer

MySQL

인덱스

  • 데이터를 빠르게 찾을 수 있도록 도와주는 도구

  • 각 열에 붙일 수 있음

  • 장점 : select문으로 검색하는 속도가 매우 빨라짐

  • 단점 : 인덱스 또한 공간이기 때문에 자리를 차지함, 데이터 변경 작업이 자주 일어나면 오히려 성능이 나빠질 수 있음

  • 종류

    • 클러스터형 인덱스
      • 어떤 열을 기본 키(Primary Key)로 설정하면 자동으로 생성됨.
      • 데이터가 정렬되어 있음
    • 보조 인덱스
      • 어떤 열을 고유 키(Unique)로 설정하면 자동으로 생성됨
      • 데이터가 정렬되어있지 않음
      • 사용자가 직접 생성하는 인덱스
        • 인덱스 생성
          CREATE [UNIQUE] INDEX 인덱스_이름
          				  ON 테이블_이름 (열_이름) [ASC | DESC];
          • 인덱스 확인
          SHOW INDEX 테이블_이름;
          • 인덱스 적용
          ANALYZE TABLE 테이블_이름;
          • 인덱스 제거
          DROP INDEX 인덱스_이름 ON 테이블_이름;
          # 자동으로 생성된 인덱스는 이걸로 제거할 수 없음
          # (alter table문으로 기본 키나 고유키를 제거해야함)
  • 효과적인 사용법

    • where절에서 사용되는 열에 인덱스를 만들어야 함
    • 데이터 변경 작업보다 select 문을 훨씬 자주 쓰는 열에 인덱스를 만들어야 함
    • 데이터 중복이 높은 열에는 안 만드는 것이 나음
    • 사용하지 않는 인덱스 제거하기

0개의 댓글

관련 채용 정보