inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

ep.12 count(*) 질문

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요, count(1) 대신 count(*)을 쓰라고 하셨는데요, count(1)이 성능이 더 좋다고 알고 있는데 제가 잘못 알고 있는 부분일까요? 성능적인측면에서도 답변 부탁드리면 감사하겠습니다~

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
rex 댓글 2 좋아요 0 조회수 123

레코드 수정시 저장공간이 부족하면

해결됨

Real MySQL 시즌 1 - Part 1

레코드를 저장할 위치가 같은 페이지내에 존재하지 않으면 다른 페이지에 저장될까요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
정성훈 댓글 2 좋아요 0 조회수 153

Redis를 적용했음에도 불구하고 조회 성능의 큰 차이가 없고 오히려 더 안좋은 조회속도를 보이는 것 같습니다.

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

간단한 영화 목록 조회입니다. 총 약 10000개의 데이터가 있습니다. redis를 적용하고 조회성능이 좋아진것은 맞지만 이상하게 redis를 적용하기 전에도 같은 조회를 계속해도 조회속도가 똑같이 빨라지는 현상을 겪고있습니다. 현재 이 movie는 MSA 의 여러 서비스 중 하나입니다. 혹시 MSA 아키텍쳐 자체가 문제가 될 수도 있나요? @Cacheable(cacheNames = "getMovies", key = "'movie:all'", cacheManager = "movieCacheManager") public List<Movie> getAllMovies() { return movieRepository.findAll(); } @GetMapping("/movies") public ResponseEntity<List<MovieDto>> getAllMovies() { List<Movie> allMovies = movieService.getAllMovies(); List<MovieDto> dtos = new ArrayList<>(); for (Movie movie : allMovies) { dtos.add(new ModelMapper().map(movie, MovieDto.class)); } return ResponseEntity.status(HttpStatus.OK).body(dtos); } @Configuration @EnableCaching // Spring Boot의 캐싱 설정을 활성화 public class RedisCacheConfig { @Bean public CacheManager movieCacheManager(RedisConnectionFactory redisConnectionFactory) { RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration .defaultCacheConfig() // Redis에 Key를 저장할 때 String으로 직렬화(변환)해서 저장 .serializeKeysWith( RedisSerializationContext.SerializationPair.fromSerializer( new StringRedisSerializer())) // Redis에 Value를 저장할 때 Json으로 직렬화(변환)해서 저장 .serializeValuesWith( RedisSerializationContext.SerializationPair.fromSerializer( new GenericJackson2JsonRedisSerializer() ) ) // 데이터의 만료기간(TTL) 설정(1분) .entryTtl(Duration.ofMinutes(1L)); return RedisCacheManager .RedisCacheManagerBuilder .fromConnectionFactory(redisConnectionFactory) .cacheDefaults(redisCacheConfiguration) .build(); } } @Configuration public class RedisConfig { @Value("${spring.data.redis.host}") private String host; @Value("${spring.data.redis.port}") private int port; @Bean public LettuceConnectionFactory redisConnectionFactory() { return new LettuceConnectionFactory(new RedisStandaloneConfiguration(host, port)); } }

  • redis
  • nosql
  • query-tuning
  • performance-tuning
이수현 댓글 3 좋아요 0 조회수 217

강의 내용을 블로그에 정리해도 괜찮을까요?

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

강사님 안녕하세요. 😁 강사님의 MySQL 성능 최적화 강의를 블로그에 정리하여 기록하고 싶은데 가능할지 여쭤보고 싶습니다. 강의 자료를 참고하여 제가 이해한대로 정리하고, 저의 실습 화면을 첨부하는 식으로 정리하려 합니다. 또한 출처를 분명히 표기하겠습니다. 다만 글의 전체적인 흐름이나 내용이 강의를 기반으로 한 것일거라.. 조심스러워 여쭙습니다. 항상 좋은 강의 제공해 주셔서 진심으로 감사드립니다.

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
개발자 아자뵤 댓글 2 좋아요 1 조회수 164

Elastic Cache 에러

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.5.3.jar:3.5.3] Caused by: org.springframework.data.redis.listener.adapter.RedisListenerExecutionFailedException: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis at org.springframework.data.redis.listener.RedisMessageListenerContainer.lazyListen(RedisMessageListenerContainer.java:383) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.listener.RedisMessageListenerContainer.start(RedisMessageListenerContainer.java:361) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:405) ~[spring-context-6.2.8.jar:6.2.8] ... 19 common frames omitted Caused by: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1858) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1789) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceC Redis 에러 (백엔드 에러는 이렇게 뜨고) 프론트 엔드 (로그인 하고 들어가는 거 잘됩니다. 채팅만 치면 저렇게 뜹니다.) EC2에서 redis 접속은 잘 됩니다. 프론트는 S3+cloudfront (도메인 적용 안함) 백엔드는 Redis(Elastic) + EC2+RDS +nginx 로 배포했고 몇시간 쨰 하는데 저 에러가 뜹니다. 혹시 프론트 배포가 잘 못 된건가요? 강사님 도와주세여ㅠㅠㅠ

  • redis
  • nosql
  • query-tuning
  • performance-tuning
KMC 댓글 2 좋아요 0 조회수 142

Elastic

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

Caused by: org.springframework.data.redis.listener.adapter.RedisListenerExecutionFailedException: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis at org.springframework.data.redis.listener.RedisMessageListenerContainer.lazyListen(RedisMessageListenerContainer.java:383) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.listener.RedisMessageListenerContainer.start(RedisMessageListenerContainer.java:361) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:405) ~[spring-context-6.2.8.jar:6.2.8] ... 19 common frames omitted Caused by: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1858) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1789) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1586) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.lambda$getConnection$0(LettuceConnectionFactory.java:1566) ~[spring-data-redis-3.5.1.jar:3.5.1] at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.doInLock(LettuceConnectionFactory.java:1527) ~[spring-data-redis-3.5.1.jar:3.5.1] 위에꺼는 백엔드 서버 에러이고 밑에는 프론트엔드 서버 에러입니다. 안녕하세요 강사님 채팅 서버와 프론트를 배포를 해서 Elastic Cache를 이용을 하고 있는데 EC2 랑 연결이 잘 되어 있으면서도 이런 에러가 뜹니다. 아무리 찾아봐도 더 해결사항이 보이지 않아 질문드립니다.

  • redis
  • nosql
  • query-tuning
  • performance-tuning
댓글 2 좋아요 0 조회수 137

복합 index 문의

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요, 강의 잘 듣고 있습니다. 04 페이징 쿼리 작성 강의 > 데이터 개수 기반 방식 (동등 조건 사용 시) (9:36 부근) 에 나온 예시에 대한 질문입니다. KEY index_userid_id (user_id, id)로 인덱스가 있는데요, user_id +id 가 아닌, user_id만 인덱스로 걸어도 N회차 쿼리가 잘 동작 할까요? where 절에 user_id, id를 사용하고, ORDER BY 에 id가 있기 때문에 user_id + id 인덱스가 필요한 걸까요? 조금 더 자세히 알려주시면 감사하겠습니다.

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
rex 댓글 2 좋아요 0 조회수 145

강의

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요, ppt 자료제공이 안되는 건가요? 일년 전 문의 글이 있어보니, 문제가 있어 당장에 공개를 안하고 있다고 하신글을 봤늗네 아직도 해결 되지 않으신걸까요? 구매하였는데, 당황스럽네요...

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
hi_man159 댓글 1 좋아요 0 조회수 132

AWS 리소스 삭제에 관하여

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

강의에서 사용한 리소스를 모두 삭제를 했습니다. 그러나 청구서에 여전히 비용이 조금씩 남아있는데 혹시 이건 제가 예전에 사용한 것이 아직 결제되지 않은 상태기 때문에 남아있는 것인가요? 분명히 모든 리소스를 삭제했음에도 불구하고 비용이 나가게 될까봐 걱정입니다.

  • redis
  • nosql
  • query-tuning
  • performance-tuning
이수현 댓글 2 좋아요 0 조회수 131

ec2안에서 pull 받는 이유가 뭔가요 ?

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

ec2에서 깃을 그대로 풀받아서 ec2 안에서 jar를 생성 하는 이유가 따로 있나요 ? 소스코드를 내려받게 되는데 필요하지 않은 용량을 사용하고 소스파일이 서버에서 관리되는 느낌이라서요

  • redis
  • nosql
  • query-tuning
  • performance-tuning
  • git
lim_hook 댓글 2 좋아요 0 조회수 135

Nest.js + Redis 구현 문제

해결됨

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

안녕하세요 레디스 강의를 재미있게 수강하고 있는데요 문제가 있어서 여러가지 찾아보았지만 잘 해결이 되지 않아서 여기에 문의 남깁니다 import { Module } from '@nestjs/common'; import { BoardController } from './board.controller'; import { BoardService } from './board.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Board } from './board.entity'; import { CacheModule } from '@nestjs/cache-manager'; import * as redisStore from 'cache-manager-ioredis'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: '', // 임시로 삭제 password: '', // 임시로 삭제 database: 'mydb', autoLoadEntities: true, synchronize: true, // Note: set to false in production }), TypeOrmModule.forFeature([Board]), CacheModule.register({ store: redisStore, host: 'localhost', port: 6379, ttl: 60, }), ], controllers: [BoardController], providers: [BoardService], }) export class AppModule {} import { Inject, Injectable } from '@nestjs/common'; import { Board } from './board.entity'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { CACHE_MANAGER, Cache } from '@nestjs/cache-manager'; @Injectable() export class BoardService { constructor( @InjectRepository(Board) private boardRepository: Repository<Board>, @Inject(CACHE_MANAGER) private cacheManager: Cache, ) {} async getBoards(page: number, size: number): Promise<Board[]> { const cacheKey = `boards:page:${page}:size:${size}`; const cachedData = await this.cacheManager.get<Board[]>(cacheKey); if (cachedData) { return cachedData; } const skip = (page - 1 ) * size; const boards = await this.boardRepository.find({ order : {created_at: 'desc'}, skip: skip, take: size, }); await this.cacheManager.set(cacheKey, boards); const cachedData3 = await this.cacheManager.get(cacheKey); console.log('stores:', this.cacheManager.stores); console.log('stores 타입:', typeof this.cacheManager.stores); console.log('stores 내용:', JSON.stringify(this.cacheManager.stores, null, 2)) return boards; } } 현재 이렇게 2개의 파일을 레디스 적용하기 위해서 작성을 하였는데요 레디스에서 검색을 하면 정상적으로 조회가 되지 않습니다(mysql에서 가지고 온 데이터는 정상적으로 조회가 됩니다) 그래서 중간에 로그도 찍어보았는데 레디스가 아니라 keyv 여기에 저장이 되는거 같습니다 왜 그런지 원인을 알고 싶습니다 참고로 레디스 cli, 서버는 정상적으로 동작 중 입니다 이유는 스프링으로 레디스 연동은 정상적으로 잘 됩니다

  • redis
  • nosql
  • query-tuning
  • performance-tuning
우주인 댓글 3 좋아요 0 조회수 759

LEFT JOIN 시 드라이빙 테이블을 왜 ALL로 읽나요?

해결됨

Real MySQL 시즌 1 - Part 1

10강 LEFT JOIN 주의사항 및 튜닝에서 explain select u.id , u.name , uc.coupon_id, uc.use_yn from user u left join user_coupon uc on uc.user_id = u.i and uc.coupon_id = 3; 위 쿼리의 실행계획으로 type ALL 이 나왔는데요 왜 u.id는 primary key인데 왜 index가 나오지 않고 ALL이 나오는 걸까요? left join 시 where 절에 조건이 없으면 드라이빙 테이블은 항상 ALL로 읽나요? 혹시 u.name을 select절에 포함해서 ALL이 나오는걸까요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
또또록 댓글 2 좋아요 0 조회수 185

데이터를 안가져와요

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

똑같이 해서 돌렸는데 데이터가 안보여서 로그 찍어 봤어요 컨트롤러에서 page 파라미터는 불러오는데 size 값만 안불러와요

  • redis
  • nosql
  • query-tuning
  • performance-tuning
이직이직 댓글 2 좋아요 0 조회수 145

여러 테이블 조인시 where 절이 필요한가? 에 대해 질문있습니다.

해결됨

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

강사님 안녕하세요! 프로젝트를 끝내고 리팩토링을 하고이 있는데요.inner join 으로 3~4 개 정도의 테이블을 조인할 때, where 절이 과연 필요한가? 라는 궁금증이 생겼습니다. 기존에는 무지성 inner join 으로 테이블을 다 합친 후, where 절에서 필터링을 하고있었습니다. 근데 생각을 해보니 조인하려는 첫 테이블에 on 절로 추가 조건들을 넣어준다면.. 후에 조인하는 테이블들의 row 수를 줄일 수 있어 훨씬 효율적인것 같은데 (물론 인덱스도 타고).. 강사님은 어떻게 생각하시는지 궁금합니다. 단순히 하나의 테이블에 대한 row 만 가져올때는 where 절을 사용하고, 나머지 경우에는 where 절을 사용하지 않는게 훨 효율적이지 않나? 라는 생각이 들어서 이렇게 질문드립니다.

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
PrivilegeEscalate 댓글 2 좋아요 0 조회수 203

Spring Boot 프로젝트에 Redis 셋팅 추가하기에서 13분 질문있습니다.

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

Spring Boot 프로젝트에 Redis 셋팅 추가하기에서 13분에서요. 스프링부트 종료하고 다시 사작한 화면에서 cmd에서 cash * 누르면 캐시가 없던데 캐시는 휘발성인가요?

  • redis
  • nosql
  • query-tuning
  • performance-tuning
zzzzz 댓글 2 좋아요 0 조회수 240

풀 인덱스 스캔 질문있습니다.

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

CREATE INDEX idx_name ON users (name); EXPLAIN SELECT * FROM users ORDER BY name LIMIT 10; <- 이 부분에서 idx_name을 안쓰고 컬럼명만 작성했는데 어떻게 풀 인덱스 스캔을 썼는지 아는건가요?

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
zzzzz 댓글 2 좋아요 0 조회수 195

멀티컬럼인덱스 질문있습니다.

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

강의자료: https://jscode.notion.site/661a5bcd11c74b4c97520460dbc4a328 주의 사항 2에서요. 정렬을 자세히 잘 살펴보면 이름 기준으로 정렬이 되어 있지는 않다. 왜냐면 같은 부서 를 가진 데이터끼리만 정렬을 시켰기 때문이다. 실제로 아래 SQL문을 실행시킬 때 인덱스를 활용하지 못한다. 윗 부분에 말 뜻이. 처음부터 이름 순으로 정렬이 안되어있어서 멀티컬럼인덱스가 사용이 어렵다는 말씀인가요? 즉 아래 컬럼 처럼 안되어 있어서 멀티 컬럼인덱스가 적용이 안된다는 말씀인가요? 부서 | 이름 | 순위 ---------------------- 회계 | 김미현 | 2 회계 | 김민재 | 3 인사 | 하재원 | 6 운영 | 이재현 | 4 운영 | 조민규 | 5 인사 | 최지우 | 7 회계 | 박미나 | 1

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
zzzzz 댓글 2 좋아요 0 조회수 187

레디스 환경 셋팅 질문있습니다.

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

선생님 코드 복붙했는데 어느 부분이 틀린지 잘 모르겠습니다. class RedisCacheConfig 부분에서 RedisConnectionFactory redisConnectionFactory 이 부분이 에러가 나고 class BoardService애서 cacheManager = "boardCacheManager" 여기서도 에러가 납니다. 파일 첨부합니다.

  • redis
  • nosql
  • query-tuning
  • performance-tuning
zzzzz 댓글 2 좋아요 0 조회수 145

엘라스틱 서치와 레디스의 차이점을 알고 싶습니다.

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

엘라스틱 서치와 레디스의 차이점을 알고 싶습니다. 그리고 강의 중에 엘라스틱 서치도 redis-cli로 접속하여 값을 볼수있는데. 이것은 왜 redis-cli 를 사용하는지도 알고 싶습니다.

  • redis
  • nosql
  • query-tuning
  • performance-tuning
네오스카이 댓글 2 좋아요 0 조회수 362

-parameters

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

http://localhost:8080/boards 로 접근시 해당 에러가 발생합니다

  • redis
  • nosql
  • query-tuning
  • performance-tuning
Cola 댓글 2 좋아요 0 조회수 193

인기 태그

인프런 TOP Writers

주간 인기글