본문 바로가기
728x90
반응형

study/DB8

대용량 테이블 전체 건수 조회 한 테이블에 건수가 많으니 카운팅도 오래 걸린다. 힌트나 실행계획을 이해를 해야 하는데, 이렇게 찾아보고 있다. 나는 천만단위 데이터에서 헉헉대고 있는데, 고수분들은 억단위까지는 커버하시는구나. 대단하다.. 책을 한번 찾아봐야 할것 같다. 아래 2개 블로그의 케이스 모두 효과를 확인하였다. 현재 나의 상황에서는 데브포유 님의 케이스가 가장 빠른 효과를 보여주었다. 정희락님의 케이스도 준수한 속도를 보여주었다. GOOD. 추후에 비슷한 케이스가 있을 때 참조하기 위해 2가지 모두 기록해둔다. 고수님들 감사합니다. 출처: https://dev4u.tistory.com/248 인덱스를 이용해서 index fast full scan + parallel로 하는 방법입니다. ----------------------.. 2023. 12. 6.
대용량 페이징 속도가 안나옵니다. 정렬하니 한세월이네요. 갑자기 대용량 데이터를 처리할 상황이 되었습니다. 한 테이블에 3천만건 가량의 데이터가 들어가 있고, 한그룹의 데이터가 2700만건 정도가 됩니다. 데이터는 더 늘어나겠지요. 통계데이터는 배치작업으로 별도 계산한 값을 조회하도록 처리했습니다. 하지만, 원자료를 조회하는 화면에서는 정렬 처리 또는 페이징 처리 과정에서 분단위로 속도가 나오더군요. 쉽게 갈 수 없을거라 생각했다.. 아무생각 없이 무지성으로 조회하다가 앗뜨거, 놀라서 검색을 했습니다. 다행히 아래 예제에서 보여주는 내용들이 많은 도움이 되었습니다. DBMS의 실행계획에 대해서도 공부를 좀 해봐야 할 것 같습니다. 머리에 다 들어가진 않더라도 이렇게 찾으려면 키워드는 머리 속에 좀 넣어둬야 도움이 될 것 같습니다. 참고 : https://m.b.. 2023. 12. 5.
[MYSQL] 문자열을 구분자로 분리 후 일치하는지 구분하는 방법 # 함수추천 : FIND_IN_SET 요구사항 : 여러 문자열을 구분자로 연결한 컬럼을 대상으로 분리하는 경우 검색어와 완벽히 일치하는 조건 검색이 필요하다. 장점 : 그룹개수에 재한이 없고, 쿼리문이 단순해진다. 문자열을 분리 후 검색어와 비교하는 쿼리를 검색해보면 복잡한 쿼리가 많이 보인다. 단점 : 구분자는 쉼표만 지원한다. 인덱스를 타지 않는다. /// FIND_IN_SET 함수란? FIND_IN_SET(str, strlist) 콤마로 구분되어 있는 strlist 문자열('a,b,c,d')에 매칭되는 str문자('b')가 있는지 확인해줍니다. 매칭되는 것이 있을 경우 몇번째에 있는지 포지션 값을 리턴하고 없으면 0을 리턴합니다.(strlist 가 빈문자열이어도 0 리턴) 즉 strlist 라는 S.. 2023. 11. 29.
mysql 삭제쿼리 실행시 오류 발생 대처 http://stackoverflow.com/questions/21841353/mysql-delete-under-safe-mode SET SQL_SAFE_UPDATES = 0;삭제 쿼리SET SQL_SAFE_UPDATES = 1; 2015. 11. 28.
오라클 버전으로 WITHIN GROUP 대신 XMLAGG 사용하게 된 케이스 XMLAGG XMLAGG 함수는 Oracle에서 사용되는 XML을 생성하기 위한 함수 중 하나입니다. 이 함수는 여러 행의 데이터를 그룹화하여 XML 형식으로 변환합니다. GROUP BY 절과 함께 사용되어 여러 행의 데이터를 그룹화하고, 그룹화된 데이터를 XML 형식으로 결합합니다. 주로 다음과 같은 형태로 사용됩니다: SELECT group_column , XMLAGG(XMLElement("element_name", column_to_convert) ORDER BY ordering_column).getClobVal() AS xml_result FROM your_table GROUP BY group_column; group_column: 데이터를 그룹화할 기준 열입니다. XMLElement("eleme.. 2015. 6. 24.
oracle update with select 2가지 방법 Oracle에서 SELECT 후 UPDATE를 수행하는 방법은 크게 두 가지입니다. 각각은 다음과 같습니다: 1. 서브쿼리를 사용한 UPDATE 서브쿼리를 사용하여 SELECT 결과를 기반으로 UPDATE를 수행할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다. UPDATE your_table SET column_to_update = new_value WHERE your_condition AND your_column IN (SELECT your_column FROM your_table WHERE your_select_condition); 이 예시에서는 `your_table`에서 일부 조건을 충족하는 행들에 대해 `column_to_update` 값을 업데이트하는 쿼리입니다. 2. MERGE .. 2015. 4. 24.
mywql - error - The last packet successfully received from the server was ... 출처 : http://cafe.daum.net/_c21_/bbs_search_read?grpid=1DpW4&fldid=Mu3b&datanum=3 참고 사이트: http://blog.daum.net/bada0217/97 http://mysqlpreacher.com/wordpress/2010/06/mysql-jdbc-connector-autoreconnecttrue/DEBUG][TP-Processor3][2010-04-26 13:45:48,825] login.LoginMultiAction (MultiActionController.java:530) - Binding request parameters onto MultiActionController command[DEBUG][TP-Processor3][2010-.. 2014. 12. 5.
mysql view MYSQL VIEW란 MySQL에서 VIEW는 하나 이상의 기본 테이블을 기반으로 하며, 저장하지 않고도 가상의 테이블로 쿼리 결과를 나타냅니다. VIEW를 사용하면 복잡한 쿼리를 간단하게 만들 수 있고, 데이터에 대한 뷰를 정의하여 효율적으로 데이터에 접근할 수 있습니다. 아래는 MySQL에서 VIEW를 생성하고 사용하는 기본적인 예제입니다. 1. VIEW 생성 CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition; 예를 들어, "employees" 테이블에서 "name"과 "salary" 컬럼만을 사용하여 VIEW를 생성하는 경우: CREATE VIEW employee_view AS SELECT nam.. 2013. 4. 9.
728x90
반응형