For me and my 2x monthly canker sores, it turned out I was severely iron deficient and had anemia. Since taking supplements, I haven't had a canker sore in 7 months.
In the rare instance I get a canker sore I now immediately apply some raw bee propolis (can find it on Amazon). Put a few drops on a q-tip and directly apply to canker sore. It burns like hell, but what happens is it creates a "seal" around the sore that lasts for a couple days (unlike the OTC crap) which not only protects you as you eat from burning pain, but also speeds healing. Since using propolis, my sores will heal in 2-3 days vs. 7-10 on their own. It's incredible.