Hivi kuna haja gani ya kutumia au kuandika raw SQL wakati modeni frameworks kama django na laravel zinatumia ORM ambazo unaandika simple lines of codes then inakutengenezea table saaafi kabisa!!
Je kuna haja ya kusoma/kutumia raw sql kweli?
Swali Zuri Sana, I have some important points here;
ISSSUE YA PERFOMANCE
ORM na raw SQL zinatofautiana kwa kutegemea na project unayofanya in uzito gani, mfano issue ya perfomance ORM iko slow sana kuliko raw SQL kwenye execution ya data kwa karibia oparation zote i.e select, update, insert etc. kwa sababu data ORM ina badili raw zote kuwa objects ndo ikupe data wakati SQL infanya direct from/to rows/tuples.
Kama hapa haujanisoma, natoa mfano
Tengeneza database kisha tumia raw SQL kuweka data pima muda uliotumika kuweka data kwenye table.
Tengeneza database kisha tumia ORM kuweka data huko kisha cheki muda uliotumika.
Unaweza rudia rudia kwa opration zingine ili uweze kuona perfomance husika na hakikisha unatumia idadi ya data sawa na envronment sawa. Utaona maajabu ya row SQL.
Hapo hakuna cha ajax wala vue js n.k
Nenda kapime mwenyewe uone au mimi nitakupimia pia kama utataka.
ISSUE YA DEVELOPMENT
ORM iko vizuri kwani ni simple kuliko raw SQL kwa kuwa kuna baadhi ya query unaweza tumia line nyingi kukamilisha unachokitaka kama ukitumia raw SQL, wakati ukitumia ORM ni faster tu umemaliza kuandika line hizo.
ISSUE YA COMPLEXITY
Hakika kuna complex query ambazo ni ngumu mno kutumia ORM mfano query zinazo join table nyingi kwa wakati mmoja na unatakiwa upate data tofauti with their details hapo ongeza alias,sasa ukitumia ORM utahenya, but raw SQL can act accordingly mara nyingi hizi complex zinatumia kuretrieve data kwenye table nyingi at the same time cheki issue ya search engine utaelewa.
But all in al chagua kinachostahili wakati unaostahili kwa kuwa kuna mifumo mingine lazima ijumuishe both ORM na raw SQL.na mwisho wa yote lazima ujifunze kwanza SQL ndo ufuatilie ORM na ni sawa na kusoma python first kisha usome django au php kisha Laravel kiufupi lazima uchague vitu kwa wakati sahii.