Я считаю, что газовый балончик ( не Терен) или хороший щокер в описаных ситуациях намного эффективней. С пистолета в условиях уличной драки довольно трудно попасть в человека. К тому же из пистолета и убить, не дай Бог, можно, а доказать необходимую самооборону крайне сложно и сидеть потом из-за какого-нибудь "гопника" совсем не хочеться.
Но самый эффективный способ, это как писалось выше, избежать применение любого насилия если есть такая возможность. Стараться не лазить по ночам в пьяном виде, избегать всяких подворотней, не светить дорогой мобилкой и украшениями.