私は CF 開発を独学で学んでおり、学習しながらテスト用に共有 CF ホスト サイトを使用しています。
約 15 列に 2500 以上のデータ レコードを含むスプレッドシートがあります。スプレッドシートには、このアプリケーションの基礎にとって重要なデータが含まれています。オフラインで維持され、定期的に を使用してサーバーにアップロードされますcffile
。アップロード後、スプレッドシートは MySQL テーブルに 1 行ずつインポートされます。
問題は、完全に時間がかかりすぎることです。たとえば、現在実行中です。過去 43 分間に、2500 レコードのうち 192 レコードのみが MySQL テーブルに追加されました。これを行うより効率的な方法はありますか?
以下のコードを確認すると、内部でcfloop
cfspreadsheet タグが実行され、現在の行が取得されます。次に、その行を「CSV」データとして MySQL テーブルに追加します。
これをより効率的に行う方法について何か提案はありますか?
<cfloop index="RecordNumber" from="2" to="#Records#" step="1">
<cfspreadsheet action="read"
format="csv"
name="siteinfo"
src="#floc#"
headerrow="1"
rows="#RecordNumber#"
columns="1-7,15,16,22,23"
>
<cfset ColumnCount = ListLen(siteinfo)>
<cfset CSVSiteData = #siteinfo#>
<cfset EntryType = "Site_Data">
<cfquery name="Insertsite" datasource="TechData">
INSERT INTO sitelist (EntryType, CSVSiteData, DateInserted)
VALUES ('#EntryType#', '#CSVSiteDataf#', '#DateInserted#')
</cfquery>
</cfloop>