2024/02 3

[sql] 속도? count(*) > count(컬럼) > count(distinct(컬럼)) (100개 이상이면 sysindexes)

java 코드를 nodejs로 바꾸면서 총결산 조회하는 api에서 12초나 걸리는 말도 안되는 일이 있었다. 여러 종류의 금액을 연산하는 것 때문인가 싶어서 인덱스를 이렇게도 해보고 저렇게도 해봤는데 여전히 12초! 이 코드 저 코드 다 주석처리 해보며 어디에 원인이 있나 찾아보니 count 부분 때문이었다. 아래의 출처 링크에서 얻은 정보는 이러하다. 1. count(*): 단순 행을 세는 역할을 한다(Mysql 내부적으로 데이터를 읽지않고 행의 갯수를 흝고 지나간다는 것) 2. count(컬럼): 행의 값을 세는 역할을 한다 (데이터를 읽는 것) 속도 : count(distinct(컬럼)) < count(컬럼) < count(*) 순서 1. 불필요한 데이터를 셀 필요없이 행의 갯수만 얻고 싶다면 * ..

카테고리 없음 2024.02.27

[MySQL] <>와 !=의 차이는? 차이가 없음! 그럼 무엇을 쓰는 것이 더 좋을까? <> 사용권장

와 != 모두 '같지 않음'을 의미하는 연산자이다. 성능상에도 차이는 없다. 하지만 를 사용하는 것을 권장한다. 1. SQL 기본 문법에서는 NOT EQUAL에 대해 를 사용하고 있고, 2. ISO 표준에 따라서도 를 사용하고 있기 때문이다. https://www.sqlshack.com/sql-not-equal-operator/ SQL Not Equal Operator introduction and examples This article explores the SQL Not Equal comparison operator () along with its usage scenarios. www.sqlshack.com

카테고리 없음 2024.02.22

[JavaScript] 심볼키는 Object.keys() 매서드로 액세스 할 수 없음 그렇다면? Object.getOwnPropertySymbols()

params.rangeDate가 Symbol을 사용하여 구현된 비교 연산자(gte: greater than or equal to, lte: less than or equal to)를 가진 객체입니다. 이러한 심볼 키는 Object.keys() 메서드로 엑세스할 수 없습니다. Object.keys()는 해당 객체의 enumerable한 속성들의 배열을 반환하는데, 심볼은 enumerable하지 않기 때문에 이러한 키들은 반환되지 않습니다. 대신에, Symbol.iterator를 사용하여 이러한 특별한 키들을 직접 접근할 수 있습니다. const rangeDateKeys = Object.getOwnPropertySymbols(params.rangeDate); if (rangeDateKeys.length !=..

카테고리 없음 2024.02.15