It differs a bit depending on which candy machine version you are talking about. This answer is for the latest version candy machine v3 (which is split into candy core and candy guards. The NFT data is stored in Candy Core, Candy Guards are used to control the minting conditions):
The Data for all NFTs that can be minted from one machine is stored in one Candy Core Account. You can find more Info on the account structure in the code. The Account generally looks like this
pub struct CandyMachine {
/// Features versioning flags.
pub features: u64,
/// Authority address.
pub authority: Pubkey,
/// Authority address allowed to mint from the candy machine.
pub mint_authority: Pubkey,
/// The collection mint for the candy machine.
pub collection_mint: Pubkey,
/// Number of assets redeemed.
pub items_redeemed: u64,
/// Candy machine configuration data.
pub data: CandyMachineData,
// hidden data section to avoid deserialisation:
//
// - (u32) how many actual lines of data there are currently (eventually
// equals items available)
// - (ConfigLine * items_available) lines and lines of name + uri data
// - (item_available / 8) + 1 bit mask to keep track of which ConfigLines
// have been added
// - (u32 * items_available) mint indices
}
Part of the candyMachineData is the following configLine struct where each configLine is the Data for one NFT.
pub struct ConfigLine {
/// Name of the asset.
pub name: String,
/// URI to JSON metadata.
pub uri: String,
}
When an NFT is minted the Config Line and general data (like creators) is read from this Account to create the NFT.
Also be aware that with v3 not the whole Name or URI has to be stored. You can also work with prefixes for both to save space.
tl;dr: all items = 1 Account