Combine the first 5 ingredients in a bowl. Pour the beer or soda water into a second bowl. Add the flour mixture and whisk until a smooth batter forms.
Fill a second bowl slightly larger than the bowl with batter in it half full with ice cubes. Set the bowl of batter on the ice.
Let the batter sit 5 minutes to make it icy-cold.
Preheat the oil in your deep fryer to 375°F. Preheat your oven to 200°F. Set a wire rack over a baking sheet.
When the oil is hot, working in batches, dip the fish into the batter, remove and let excess drip away. Carefully lower coated fish into the deep-fryer and fry 5 to 6 minutes, turning once, or until richly coloured and crispy. Drain the fish well, set on the wire rack, and keep warm in the oven until all pieces are fried. If desired, serve the fish with tartar sauce or aioli for dipping, and lemon wedges for squeezing.