ہمیشہ سب سے چھوٹی type منتخب کریں جو ہر اُس value کو درست طریقے سے رکھ سکے جو آپ کبھی store کریں گے۔ درست type disk بچاتی ہے، indexes چھوٹے کرتی ہے، اور خاموش data corruption روکتی ہے۔
ہمیشہ سب سے چھوٹی type منتخب کریں جو ہر اُس value کو درست طریقے سے رکھ سکے جو آپ کبھی store کریں گے۔ درست type disk بچاتی ہے، indexes چھوٹے کرتی ہے، اور خاموش data corruption روکتی ہے۔
INT (4 bytes)؛ BIGINT (8 bytes) صرف تب جب آپ واقعی ~2.1 billion سے آگے بڑھ جائیں۔DECIMAL(10,2) — کبھی نہیں FLOAT/DOUBLE، جو binary میں round ہو کر cents کھو دیتے ہیں۔VARCHAR(n)؛ n ایک حد ہے، storage صرف اُتنی ہی ہوتی ہے جتنی آپ استعمال کرتے ہیں۔TEXT — یہ off-page store ہوتی ہے اور اس کی کوئی default نہیں ہو سکتی؛ اسے اُن چھوٹی values کے لیے استعمال نہ کریں جن پر آپ filter کرتے ہیں۔DATETIME (کوئی timezone نہیں، 8 bytes) بمقابلہ TIMESTAMP (UTC میں تبدیل، 4 bytes، ~2038 کی حد)۔CREATE TABLE payments (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
amount DECIMAL(10,2) NOT NULL, -- exact money, not FLOAT
currency CHAR(3) NOT NULL, -- always 3 chars -> fixed CHAR
note VARCHAR(255), -- bounded, indexable
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- Pitfall: the default SQL mode rejects bad values (good) --
INSERT INTO payments (amount) VALUES ('abc'); -- ERROR 1366, not silently 0
FLOAT استعمال کرنا۔VARCHAR(255) — بڑے سائز کی keys indexes کو پھلا دیتی ہیں۔UNSIGNED بھول جانا جو کبھی negative نہیں ہوتے (positive range کو دوگنا کر دیتا ہے)۔Data types سب سے سستا correctness اور performance فیصلہ ہیں جو آپ کرتے ہیں، اور بعد میں انہیں بدلنا سب سے مشکل ہے — narrow، exact types indexes کو چھوٹا رکھتی ہیں اور خراب ڈیٹا کو دروازے پر ہی روک دیتی ہیں اس سے پہلے کہ وہ ایک production bug بنے۔
تفصیلی جوابات کے ساتھ IT انٹرویو سوالات کی ایک لائبریری — جونیئر سے سینئر تک۔
عطیہ دیں