Coder Social home page Coder Social logo

optimization's Introduction

프로젝트 소개

성능 최적화 실습을 위한 레포입니다. 공공데이터포털에서 가져온 대규모 데이터를 대상으로 여러가지 방법을 통해 성능을 최적화합니다.

환경

Spring boot, JPA, MYSQL

데이터

공공데이터포털에서 제공하는 소상공인시장진흥공단_상가(상권)정보 데이터를 csv로 받아서 활용했습니다. 해당 데이터는 약 250만개의 행으로 이루어져 있습니다.

https://www.data.go.kr/data/15083033/fileData.do

원본 데이터는 다음과 같은 컬럼들을 가지는 하나의 테이블로 이루어져있습니다.

"상가업소번호","상호명","지점명","상권업종대분류코드","상권업종대분류명","상권업종중분류코드","상권업종중분류명","상권업종소분류코드","상권업종소분류명","표준산업분류코드","표준산업분류명","시도코드","시도명","시군구코드","시군구명","행정동코드","행정동명","법정동코드","법정동명","지번코드","대지구분코드","대지구분명","지번본번지","지번부번지","지번주소","도로명코드","도로명","건물본번지","건물부번지","건물관리번호","건물명","도로명주소","구우편번호","신우편번호","동정보","층정보","호정보","경도","위도"

데이터의 샘플은 다음과 같습니다.

"MA010120220805431207","일로딜로","","G2","소매","G209","섬유·의복·신발 소매","G20903","유아용 의류 소매업","G47417","유아용 의류 소매업","48","경상남도","48121","창원시 의창구","48121520","팔룡동","4812112900","팔용동","4812112900100300001","1","대지",30,1,"경상남도 창원시 의창구 팔용동 30-1","481214781647","경상남도 창원시 의창구 창원대로397번길",6,,"4812112900100300001013983","뉴코아아울렛","경상남도 창원시 의창구 창원대로397번길 6","641847","51393","","4","",128.642214334036,35.234522413085
"MA010120220805431535","오미당꽈배기","","I2","음식","I210","기타 간이","I21001","빵/도넛","I56191","제과점업","48","경상남도","48250","김해시","48250630","장유3동","4825013200","장유동","4825013200108260004","1","대지",826,4,"경상남도 김해시 장유동 826-4","482503351847","경상남도 김해시 율하6로",56,,"4825013200108260004000001","","경상남도 김해시 율하6로 56","621340","51020","","1","",128.824132234696,35.1718364660764
"MA010120220805432253","하나병원","","Q1","보건의료","Q101","병원","Q10102","일반병원","Q86102","일반병원","48","경상남도","48240","사천시","48240250","사천읍","4824025024","사천읍","4824025024102700001","1","대지",270,1,"경상남도 사천시 사천읍 수석리 270-1","482403334046","경상남도 사천시 사천읍 진삼로",1468,8,"4824025024102700001040629","","경상남도 사천시 사천읍 진삼로 1468-8","664805","52518","","","",128.086510473318,35.0822194510501
"MA010120220805433603","술마시는심플노래방","","I2","음식","I211","주점","I21104","요리 주점","I56219","기타 주점업","48","경상남도","48220","통영시","48220590","정량동","4822010800","동호동","4822010800100940001","1","대지",94,1,"경상남도 통영시 동호동 94-1","482203333042","경상남도 통영시 통영해안로",363,1,"4822010800100940001007051","동피랑쭈꿀","경상남도 통영시 통영해안로 363-1","650806","53052","","","",128.427302573174,34.8445654897758

상권업종분류명 대, 중, 소를 위한 테이블을 만들고 원본 테이블에서 분리하여 연관관계를 만들었습니다.

테이블 분리를 위해 다음과 같이 SQL을 작성했습니다.

insert into big_classification_name(name)
select distinct 상권업종대분류명
from sangga
insert into midium_classification_name(name, big_classification_name_id)
select distinct 상권업종중분류명,(SELECT id FROM big_classification_name WHERE name = 상권업종대분류명)
from sangga
insert into small_classification_name(name, midium_classification_name_id)
select distinct 상권업종소분류명,(SELECT id FROM midium_classification_name WHERE name = 상권업종중분류명)
from sangga

최적화

TODO

  • JPA 최적화
  • DB 인덱싱
  • 캐싱

optimization's People

Contributors

bottlemoon avatar f-lab-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.