An unorthodox solution, for linear bullet trajectories only: Resize your bullets’ hit boxes. I used this for player shots and it worked great. That was quite a few versions of Unity ago, though, so take it with a grain of salt.
The downside is if a bullet overlaps multiple enemies, there’s no guarantee which one will take the hit, the same as if the enemies were all stacked up in an overlapping pile when the bullet hit. If mandatory bullet overpenetration is not a deliberate feature of your game, you’ll need to manually sort through all collided enemies and then pick the one furthest from the visible bullet’s current location (I.E., closest to the shooter, assuming the shooter hasn’t moved since firing.) But the upside is your bullets will have exactly the same physics performance cost as if you hadn’t resized the hitboxes.
To implement: Assuming “length” is the size of the collision box parallel to the direction of the bullet, multiply the default length of your collider primitive by bullet’s speed, and use that value to set boxCollider.size. Then set boxCollider.center to an offset that puts the front of the collider where the bullet visually is, and the back of the invisible collider sticking out behind the bullet. If the bullet travels half the screen in one update, where the bullet is now and everything the bullet passed through during the physics step will all be hit.
You want change boxCollider.size infrequently, not every update. A good time to do it is when the player collects a powerup that changes how fast their shots travel, or when they switch weapons. If the player only changes their weapons between levels, such as in a shop or upgrade menu, then you can cycle through all your pooled objects and set them then, while the player is looking at the shop UI.
Worst-case scenario, if there are frequent pickups in-game that change the speed of all the player’s bullets, or bullet speed is randomized upon firing, or the player switches weapons frequently during play, then you’ll want to scale each bullet as it is fired.
If the speed of your shots changes over time after they leave the barrel, then this answer is probably not a good solution for your use case. Likewise, if the shot curves, arcs or homes in any way, this is not a good solution. Linear bullet paths only! fortunately, most “spray and pray” weapons tend to fire dumb bullets anyway. Your spread guns, your gattling guns. Use the other solutions suggested here for things like homing missiles that probably fire one at a time anyway because they’re more likely to hit.