How to deal

So I feel like my boyfriend and I need to break up. He is constantly negative about everything, he doesn't have any motivation to do anything. He's not working or in school and all he talks about is buying a fucking ice cream truck with the little savings he has. I needed to lay down yesterday because I was cramping and the whole time he kept yelling at me because I don't take care of the dog and I don't do anything. (I'm the one who pays for the vet, the meds, all his extras, I bought him $2,500) neither of us work but I have back problems so I'm just going back to school. I do all the cooking and cleaning while he sits and plays video games all day and bitches. I don't think I want to have sex with him  anymore. He doesn't touch me the way I want to be touched and he doesn't go down on me unless it's 69 which I hate. He never wants to do anything I want to do like go get a new bed or go sign up for classes. We've been together for 2 years and I love him, but I feel like he's dragging me down. I am afraid to leave because I'll miss him more than anything, he's my best friend and I can't imagine never seeing him again. Idk what to do. I feel like I should stay because it makes me sick thinking about leaving so that should be a sign to stay right?