SQL - מחיקת נתונים מטבלא - סדר שאילתות

SQL - מחיקת נתונים מטבלא - סדר שאילתות

אני מעוניין לוודא שרשומה מסויימת לא קיימת בבסיס הנתונים לפני של מסויים.
האם כדאי לבצע שאילתה מקדימה, ורק אם יש נתון למחוק את הרשומה, או שזה בזבוז משאבים ואפשר להסתפק בשאילתת המחיקה?

//psaudo code
//option A:
select count(id) as count_id from fakeTable where id=5if count_id > 0: delete from fakeTable where id=5//option bdelete from fakeTable where id=5
 

mavor

New member
no need for the select

in mysql (any any DB) delete will give OK exit code even if no data was delete (some as in unix and rm command)
so
"delete from fakeTable where id=5" will be good
he select will just be "clean" and nicer code
 
בעיות שעולות בפסודוקוד

בדרך כלל id נשמע כמו שדה שעושים עליו אינדקס.
ובגלל שב id כמו מספר קטלוגי (בדרך כלל) אין משמעות למספר ולסדר שלו כמו למשל מספר אירוע או תאריך
האינדקס שנבחר הוא כזה שמתאים להשוואה בודדת ולא לשאילתת טווח אינדקס hash למשל ולא B+.
אם מדובר בDB עצום התוספת של תנאי טווח יכולה לתקוע לך את המערכת לביג או של N ואז יתחילו המון טלפונים שהמערכת נעולה לעדכונים
במידה כמובן שיש אינדקס הגישות לדיסק הן רק לרשומות המתאימות

אם אין אינדקס, אין משמעות למה שרשמתי ואין משמעות לשאילתה הנוספת העלות היא בכל מקרה ביג או של N בשני המקרים.
 
תשובה תיאורטית

כי אולי שגיתי באופן השאלה שלי. בצעתי השוואה, לא טווח. id=5. היכן שגיתי?
 
למעלה