2011-01-03 2 views
1

네이티브 함수 또는 다른 메커니즘을 사용하여 MySQL 내에서 Redis에서 데이터를 가져올 수 있습니까? 이 정보를 LIMIT와 함께 페이징하기 위해 ORDER BY 문에서 사용할 수 있기를 바랍니다. 그렇지 않으면 MySQL에서 모든 데이터를 가져와야하고 Redis의 각 행에 대한 추가 데이터를 가져와 내 애플리케이션에서 정렬하고 필요한 페이지를 유지해야합니다.MySQL 내에서 Redis를 호출 할 수 있습니까?

MySQL이 모든 행에 대해 Redis에서 데이터를 가져 오는 함수를 호출하고 정렬을 수행하여 필요한 페이지 만 보내면 훨씬 더 효율적입니다.

답변

2

오픈 소스를 사용하는 것이 기술적으로 가능할지라도 앱에서 더 명확한 정렬 방식보다 성능을 향상시킬 수는 없습니다. 데이터 세트가 작 으면 모든 것을 반환하는 것은 문제가되지 않습니다. 데이터 세트가 큰 경우에는 SQL에서 적절한 성능을 얻으려면 인덱싱 된 열을 기준으로 정렬해야하며 함수를 인덱싱 할 수는 없습니다.

결과 집합이 크지 않은 경우 처리 성능이나 데이터 전송보다는 지연 시간이 중요한 성능 문제입니다. sql의 한 쿼리와 redis의 한 mget은 비교적 빠르다.

페이지를 볼 때 단 하나의 쿼리 만 원하면 redis의 데이터를 sql의 열로 추가하거나 쿼리를 redis 목록에 캐시하는 등 한 곳에서 데이터를 레코드 및 정렬해야합니다.

+0

좋은 점. 나는 Redis에서 데이터를 축적하려고 시도 할 것이고 배경 작업자가 매번 MySQL에 복사하도록 할 것입니다. –

+0

좋은 접근 방식 인 것 같습니다. 데이터가 일종의 조회수 일 경우 모든 페이지보기에서 발생해야 할 일에 대해 대단히 빠르게 실행되며 카운터가 상대적인 순서에 영향을 줄 정도로 시간이 많이 걸립니다. –