찾다

 >  Q&A  >  본문

javascript - EXCEL 파일로 내보낼 때 데이터베이스를 다시 확인해야 하나요? 아니면 프런트 엔드에서 데이터를 전송해야 하나요?

1. 문제 배경: 첫 페이지에는 데이터가 테이블로 표시되고 데이터를 EXCEL 파일로 내보내는 기능이 지원됩니다. 데이터베이스 쿼리가 매우 느린 경우가 있습니다(예: 시간 범위가 길고(2년), SQL 문 실행 시간이 거의 220초인 경우)
일반적으로 내보낸 데이터를 데이터베이스에 다시 쿼리해야 합니까? 프런트 엔드에서 얻은 데이터를 PHPExcel로 직접 전달하여 처리할 수 있나요?
답변해주신 모든 분들께 감사드립니다.
PS: SQL 문을 최적화하기 위해 최선을 다했습니다(여러 테이블과 300만 개의 테이블 데이터에 대해 인덱스 파티셔닝이 수행되었습니다). 쿼리 실행 시간이 주당 약 1.6초라면 몇 분 정도 걸릴 것입니다. 년수를 확인하려고요.

ringa_leeringa_lee2790일 전602

모든 응답(5)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-16 13:01:19

    1. html 테이블을 xlsx로 직접 내보낼 수 있습니다.

    2. 1을 사용하지 않으면 프런트엔드에서 데이터를 표시하기 전에 획득한 데이터가 캐시되며, 내보낼 때 다른 데이터베이스 작업 없이 백엔드로 다시 보낼 수 있습니다.

    3. 2의 전제는 데이터의 양이 프론트엔드와 백엔드 통신의 허용 범위 내에 있고(예를 들어 50MB를 초과하면 너무 크다), 통신 소비가 데이터 소비를 위해 희생된다는 것입니다. 데이터 베이스.

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:01:19

    사실 js에는 엑셀을 처리할 수 있는 플러그인이 있는데 아직도 백엔드에서 프론트엔드의 데이터를 가져오지 않나요?

    js Excel 플러그인, Baidu에는 exceljs와 같은 다양한 플러그인이 있습니다

    navicat과 같은 일부 mysql 관리 소프트웨어는 데이터베이스를 직접 Excel로 내보낼 수 있습니다. 내보낼 때 PHP를 사용할 필요는 없습니다. 세계 최고의 언어로 모든 것을 얻을 수 있지만 다른 것도 가능하다는 점을 고려해야 합니다. 도 달성

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:01:19

    개인적으로는 데이터를 백그라운드로 다시 가져오는 것을 지원하지 않습니다. 위와 같이 html을 엑셀로 직접 내보낼 수는 있지만, 백그라운드에서 처리할 수도 있지만 html로 데이터를 표시할 때 캐시됩니다. 데이터를 서버로 내보내면 캐시 영역에서 직접 데이터를 읽어서 엑셀로 출력합니다

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-16 13:01:19

    일반적으로 EXCEL로 데이터를 내보내는 것은 백엔드 작업입니다. 여기서 사용자는 데이터를 내보내기 위해 특정 조건을 선택합니다. 백엔드에 시간이 많이 걸리는 경우 비동기 작업을 사용하여 처리할 수 있습니다.

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-16 13:01:19

    데이터를 내보내는 것이 모든 데이터를 내보내는 것을 의미하는지 알고 싶습니다. 아니면 시간 범위를 선택할 수 있나요? 모두 내보내는 경우에는 예약된 작업을 백그라운드에서 실행할 수 있습니다. 예를 들어 밤에 백그라운드로 가서 모든 데이터를 확인하는 등 고객 수가 적은 시간을 선택한 후 내보낼 때 가져오면 됩니다. 이전 기간에도 정기적으로 데이터를 확인합니다.

    회신하다
    0
  • 취소회신하다