LogoLogo
NHN커머스 메인고객지원
  • 고도몰 DBMS 업그레이드 안내
  • 💡고도몰 튜닝 상점이라면 필독!
  • ‼️제거되는 기능
    • 🔤신규 추가 키워드/예약어 사용 금지
  • ❗더 이상 사용되지 않는 기능
  • ➕추가되는 기능
    • InnoDB
    • JSON
    • Optimizer
    • Hash Join Optimization
    • Query cast injection
    • Optimizer hints for FORCE INDEX, IGNORE INDEX.
    • Derived condition pushdown optimization
    • Generated invisible primary keys
    • 그 외
  • 일정안내
    • 🗓️DBMS 업그레이드 일정 안내
Powered by GitBook
LogoLogo

NHN COMMERCE

  • 공지사항
  • 회사소개

Partners

  • 서비스 제휴문의
  • 셀러어드민
  • 디자인 파트너

Developers

  • 스토어
  • 워크스페이스
  • API가이드
  • 스킨/앱 개발 가이드

Support

  • 전체 사이트맵

©NHN COMMERCE Corp. All rights reserved.

On this page

Was this helpful?

  1. 추가되는 기능

Query cast injection

1. 인수의 데이터 유형과 예상 데이터 유형이 일치하지 않는 표현식 및 조건 내 쿼리 항목 트리에 형변경 작업 추가

  • 쿼리 결과나 실행 속도에 영향을 미치지 않지만 이전 DBMS 릴리스와의 하위 호환성을 유지하면서 표준을 준수하는 쿼리와 동일하게 실행되는 쿼리 생성

  • 표준 숫자 비교 연산자(=, >=, >, <, <=, <>/!= 또는 <=>)를 사용하여 비교될 때마다 시간 타입과 숫자 타입 간에 묵시적 형변형 수행

  • 문자열 타입을 다른 유형과 비교할 때도 수행

    • DATE 또는 TIME 값과 DATETIME 값을 비교하기 위해 DATETIME으로 형변형

    • 숫자 타입 또는 YEAR와 비교할 때 또는 FLOAT, DOUBLE 또는 REAL이 아닌 경우에도 DOUBLE 로 문자열 형변형

    • DATETIME 또는 TIMESTAMP 값과 비교할 때 DATETIME으로, DATE와 비교할 때 DATE로 문자열 형변형

CREATE TABLE d (dt DATETIME, d DATE, t TIME);

CREATE TABLE n (i INT, d DECIMAL, f FLOAT, dc DECIMAL);

CREATE TABLE s (c CHAR(25), vc VARCHAR(25), bn BINARY(50), vb VARBINARY(50), b BLOB, t TEXT, e ENUM('a', 'b', 'c'), se SET('x' ,'y', 'z'));

SELECT * from d JOIN n ON d.dt = n.i

/*
EXPLAIN FORMAT=TREE
-> Inner hash join (cast(d.dt as double) = cast(n.i as double))  (cost=0.70 rows=1)
    -> Table scan on n  (cost=0.35 rows=1)
    -> Hash
        -> Table scan on d  (cost=0.35 rows=1)
*/

SELECT * from s JOIN d ON d.dt = s.c;

/*
EXPLAIN FORMAT=TREE
-> Inner hash join (cast(n.d as double) = cast(s.c as double))  (cost=0.70 rows=1)
    -> Table scan on s  (cost=0.35 rows=1)
    -> Hash
        -> Table scan on n  (cost=0.35 rows=1)
*/

SELECT * from n JOIN s ON n.d = s.c;

/*
EXPLAIN FORMAT=TREE
-> Inner hash join (cast(n.d as double) = cast(s.c as double))  (cost=0.70 rows=1)
    -> Table scan on s  (cost=0.35 rows=1)
    -> Hash
        -> Table scan on n  (cost=0.35 rows=1)
*/
PreviousHash Join OptimizationNextOptimizer hints for FORCE INDEX, IGNORE INDEX.

Last updated 1 year ago

Was this helpful?

➕