mysql - 瞬间流量很高的网站,要频繁的插入数据到数据库,应该怎么解决这个问题?
PHP中文网
PHP中文网 2017-04-17 15:15:45
0
7
811

瞬间流量很高的网站,要频繁的插入数据到数据库,怎么才能解决速度慢的问题?要用到什么技术?

PHP中文网
PHP中文网

认证0级讲师

모든 응답(7)
大家讲道理

1. 즉각적인 삽입 성능을 높이기 위한 데이터베이스 분산 배포
2. 비즈니스가 허용하는 경우 비동기 삽입을 위해 메시지 큐를 사용합니다
3. 캐싱을 위해 redis 등을 사용한 후 데이터베이스에 비동기적으로 삽입합니다
3 . 삽입 작업이 빈번하고 관련 쿼리가 필요하지 않은 데이터의 경우 mongo와 같은 비관계형 데이터베이스를 사용하도록 선택할 수 있습니다

刘奇

실시간 요구 사항이 그다지 높지 않은 경우 Redis를 중간 계층으로 사용하여 데이터를 수신한 다음 백그라운드에서 주기적으로 Redis에서 데이터를 가져오거나 메시지 구독 메커니즘을 사용하여 데이터베이스에 쓸 수 있습니다. 배치.

大家讲道理
  1. 스토리지 구조 최적화를 고려하세요. 2. 가능하다면 여러 머신, 여러 데이터베이스, 여러 프로세스를 고려하세요. 3. 연결 풀 및 미들웨어(메시지 큐)와 중간 데이터베이스(redis) 탑재 4. 멀티스레딩...

黄舟

참고로 타오바오의 초당 14만 주문 같은 것을 검색해 보면 됩니다. 이 문제에 대한 단단하고 빠른 해결책은 없습니다.
간단히 말하면 Redis와 같은 서버측 캐시를 사용하여 요청을 처리합니다.

迷茫

메시지 대기열도 고려해야 합니다

小葫芦

캐싱 메커니즘을 추가하고 로드 밸런싱을 시도해 볼 수 있습니다

大家讲道理

1 로그를 보고 요청이 너무 많은 요청 주소를 먼저 찾아 피할 수 있는지, 필요한 작업인지 확인하세요
2 비즈니스 요구에 따라 mysql 트리거를 작성하고 이 작업은 mysql에 맡기세요
3 swoole을 사용하여 데이터베이스에 비동기식으로 삽입
4 멀티스레드 큐를 사용할 수 있습니다
5 데이터베이스에 직접 데이터를 쓰지 말고 먼저 Redis에 쓸 수 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿