All Articles

TIL&TEL 21.06.07~21.06.13

TIL( Today I Learned)

21-06-07 월

  • 쿼리개선
  • indexing 수정

21-06-08 화

  • Data insight 수정하기

21-06-09 수

  • batch job 확인
  • 코드 리뷰
  • AWS migration 청취

21-06-10 목

  • 대시보드 API 개선2
  • GSN 랩업 미팅 준비
  • Git merge 확인

    • merge 시점 결과물이 중복 되느냐 안되느냐, 중복이 된다면 , 중복 되는걸 없애는 merge 커밋을 한다.

      • —no-ff

        • merge commit 생성
      • —ff

        • merge commit 생성이 안됨, 커밋 순차 적용?
        • 베이스 커밋에 추가된 커밋이 있으면 ff 가 적용되지 않는다.
    • rebase도 마찬가지이다. 중복되는것이 있다면 각각의 커밋에서 확인하면서 커밋이 진행 된다.
    • 완성된 커밋 지점에서 중복이 지워져야 한다.
  • 21-06-11 금

    • 주간 업무보고
    • 업무평가 자료 입력
    • 업무 성과 관리

TEL (Trial and Error Log)

21-06-07

  • ERROR: Indexing not working

    • SITUATION: 2.7m row searching by status with row cardinality
    • REASON:

      • The only time it won’t engage is if the range is large enough that the optimizer concludes it’s faster to do a full table scan. This happens with dense tables and particularly large ranges. It will also happen with the >= and < range choice. They’re the same.
    • SOLUTION:

        1. set proper range.
        1. run dynamical sql by SQL or Code

21-06-08

  • ERROR: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xe3 in position 11: invalid continuation byte

    • SITUATION: Django makemigrations, enter default value
    • REASON: 한국어 입력시 안됨 코덱 관련한 이슈로 보인다. ASCII 가 아닌 문자로 입력시 bytes 변환에 문제가 있는 걸로 보인다.
    • SOLUTION:

      • 일단 영어로 입력하면 잘 된다.
  • ERROR: the current database router prevents this relation.

    • SITUATION: django migrate
    • REASON: DB Router 설정에 의해 데이터를 읽어오는 DB, Write 하는 DB가 다를경우, ORM 코딩 시, 데이터 부정합이 발생할 수 있다.
    • SOLUTION:

      •   def allow_relation(self,obj1,obj2,**hints):
                db_list = ("default","MASTER","SLAVE")
                if obj1._state.db in db_list and obj2._state.db in db_list:
                    return True
                return None```

21-06-09

  • ERROR: pymysql.err.OperationalError: (2013, ‘Lost connection to MySQL server during query ([Errno 104] Connection reset by peer)‘)

    • SITUATION: python pymysql cronjob select or insert 쿼리
    • REASON:

      • connection err => conn.close() 생략 => Got timeout reading communication packets
      • Got timeout reading communication packets

        • DB서버로 로그인한 계정이 사용하지 않아 sleep 상태에서 MySQL에 설정한 기간이 도래하여 connection을 중지하겠다는 메시지입니다
        • 네트웍 어딘가 에러가 발생했다.
    • SOLUTION:

      • pymysql 에서 connection 에러가 났는데 왜인지는 잘 모르겠다.
      • 구글 네트워크에서 에러가 났을 수도?

21-06-10

  • ERROR: 결과 안나옴

    • SITUATION: mySQL datetime BETWEEN
    • REASON: BETWEEN 사용을 잘못함
    • SOLUTION:

      • BETWEEN 앞시점 AND 뒷시점
  • ERROR: InvalidQuery: Field CollectorReport.collector cannot be both deferred and traversed using select_related at the same time.

    • SITUATION: django orm only select_related
    • REASON:

      • Only와 , select_related 를 중복해서 사용하고 있었다.
    • SOLUTION:

      • only( “select_related field” )