If you are underwater (by more than 1 block) and you run out of air and start drowning, you can't actually swim back up to the surface! Is there any way to actually survive if you are drowning?
Sink to the bottom and place a door. A door block counts as having air, even if placed underwater.
When you can't swim up while drowning, it's because the water you're in is actually a downward flow block. When you diggy-diggy-hole underwater, the hole is filled with downward water flow, rather than the still water that makes up the rest of the ocean. This downwater flow will hinder you when trying to rise to the surface.
If you place a torch against a block at head height it'll create a (very) temporary air bubble that will replenish your air. Placing a sign, a trapdoor, or a fence will make a permanent bubble. If you dig into the wall sideways you can create a passageway that will automatically be air-filled. ...and if you're standing on the bottom you can place a door or some sugar cane. Finally, even while swimming in the middle of a huge ocean you can use an empty bucket on the block right in front of your face and it'll temporarily be air; that may save you.
My testing confirms that swimming up in water that has a current is slower and it's much harder. I hear that armor also slows you, but my minor testing of the moment is inconclusive.