javascript - EXCEL 파일로 내보낼 때 데이터베이스를 다시 확인해야 하나요? 아니면 프런트 엔드에서 데이터를 전송해야 하나요?
ringa_lee
ringa_lee 2017-05-16 12:59:19
0
5
582

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

ringa_lee
ringa_lee

ringa_lee

모든 응답(5)
Ty80
  1. html 테이블을 xlsx로 직접 내보낼 수 있습니다.

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

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

漂亮男人

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

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

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

给我你的怀抱

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

刘奇

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

小葫芦

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

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