ushanmithma MySQL වල විතරක් නෙවෙයි, Programming වලදිත් ගොඩක් වෙලාවට එකම දේ කරන විදි ගොඩක් තියෙනවා. ගොඩක් වෙලාවට අපිට පේන්නේ ඒකෙන් වෙන්නේ එකම දේ වගේ වුණාට, ඒවා භාවිතා කරන්න ඕන වෙන අවස්ථා වෙනස් වෙනවා.
උදාහරණයක් විදිහට:
insert into students (id,name,nic) values(1,'Kamal',912255441v);
මේ code එකෙන් වෙන්නේ Students කියන table එකට කමල් කියන student ව insert කරන එක.
insert into students (id,name,nic)
select id,firstName,nic from oldboys;
මේ code එකෙන් වෙන්නේ oldboys කියන table එකෙන් ID එකයි, නමයි, NIC එකයි select කරලා, students කියන table එකට insert කරන එක.
මේ දෙකෙන් පළවෙනි විදිහ use කරන්නේ අපි ළඟ අදාල data ටික තියෙනවා නම්... ඒ වගේම record එකක් හරි පොඩි ගාණක් හරි නම් තියෙන්නේ, ඒක තමයි use කරන්නේ.
ඒත් හිතන්න අපි ළඟ records ගොඩක් වෙන table එකක තියෙනවා නම්, එකින් එකට අර වගේ code ලිය ලිය ඉන්න බෑනේ. ඒ records ටික අදාල table එකෙන්ම select කරලා students table එකට insert කරනවා.

ඒ වගේම අපි programming කරද්දි අපි ලියන code එක run වෙන්න කොච්චර resources (CPU, RAM වගේ) ඕනද කියන එක ගැන සැළකිලිමත් වෙන්න ඕන. ගොඩක් වෙලාවට ඔයා දැකලා ඇති SQL code එකක් execute කලාම ඒක run වෙන්න miliseconds කීයක් ගියාද කියලා පෙන්නනවා. එතකොට අපි එකම දේ එක එක විදිහට ලියලා බලනවා අඩුම time එකකින් අපිට ඕන result එක ගන්න පුළුවන් මොන ක්රමයට ලිවුවොත් ද කියලා. ඊට පස්සේ හොඳම එක use කරනවා.
එක query එකක් run වෙන වෙලාව 10 miliseconds වලින් අඩු කරගන්න පුළුවන් නම්, ඒ system එක live වැඩ කරනකොට, අදාල query එක මිලියන වාරයක් විතර run වෙනකොට අපතේ යන CPU power එක කොයි තරම් අඩු කරගන්න පුළුවන් ද කියලා නිකමට හිතලා බලන්න. 😉
විදි කීයක් තියෙනවද කියන එකට හරි උත්තරයක් දෙන්න බෑ... සමහර දේවල් කරන්න ක්රම හිතාගන්නවත් බැරි තරම් තියෙනවා, සමහර ඒවා කරන්න ක්රම එකයි දෙකයි තියෙන්නේ... අදාල දේ Google කරපුවාම එනවා ඉතිං කරන්න පුළුවන් විදි ටික.