A recent project required functionality to import and delete half a million Drupal nodes. In our case the client had vendor-supplied CSV files of store location information. The CSV files were not Drupal-ready so we developed our own custom script to ready the original CSV for import. Each store chain had its own CSV so we could control the size of the files during import.
The Feeds module was used to import the CSV as Drupal nodes, complete with store address and product information. The store address was required to Google map the locations in a Store Finder on the site. The Location and GMap modules provided the mapping we needed. Views and the Views Attachment provided the dual-results we needed, where one result set was the Google map and another result set was rendered as a list below the map.
Another hurdle was the deletion of nodes. We initially tried the CSTools solution of using "content creation" in reverse, meaning we set it to "delete all content" before creating new content, then set the content creation amount to zero While this worked at first, once we were in the half-million node area it ceased to work with an obscure error.
We then tried the Bulk Delete module which we had overlooked previously because it says it is a slow module. The module did also fail but provided us with a more helpful error, leading us to increase our MySQL packet size. Bulk Delete did work then, taking a whopping 5 hours to delete @ 450,000 nodes
Adrean C. DeafBlindInfo.org
Always a pleasure to work with John. He navigated through the project effortlessly and was willing to work out any missing information or code tangles. Will be sure to invite him again to future projects!