If you are allocating 4 days to the pre-cruise stay why not both. Some years ago we spent 2 days in Bologna and loved it - great food and a very buzzy place as it is a university city. Then we took a taxi to the station and travelled first class by train to Venice. Prebook on the Trenitalia website [you can opt for English] and about 1.5 hours I think on a high speed train [ Frediorossa or similar] and it takes you right into Venice at Stazione Venezia Santa Lucia. The you can take a vaporetto to wherever you are staying.
Why not stay on Guidecca island which looks across to the main island and is only a few minutes by vaporetto, and is much quieter to stay on. A great time to visit the main island is in the evening, when you can visit the main sites without huge crowds. If there during the day just wander off the main places up the side streets.