הבדלים בין Varchar ו Nvarchar ההבדל בין

Anonim

Varchar לעומת Nvarchar

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

ב- Oracle 9i, לשדה יש ​​מגבלה מקסימלית של 4000 תווים. MySQL יש מגבלת נתונים של 65, 535 עבור שורה, ואת Microsoft SQL Server 2005 מגיע עם מגבלת השדה של 8000. נתון זה יכול ללכת גבוה יותר בשרת Microsoft SQL כאשר Varchar (מקסימום) משמש, עולה ל 2 ג 'יגה בייט. Nvarchar, לעומת זאת, הוא טור שיכול לאחסן כל אורך של נתונים Unicode. Codepage כי Nvarchar חייב לדבוק הוא קידוד 8 סיביות. הגודל המקסימלי עבור Varchar הוא 8000 בעוד הגודל המרבי עבור NVarchar הוא 4000. משמעות הדבר היא למעשה, כי עמודה אחת של Varchar יכול להיות מקסימום של 8000 תווים ואת עמודה אחת של Nvarchar יכול להיות 4000 תווים לכל היותר. חריגה מהערכים בעמודה הופכת לבעיה עצומה, ואף עלולה לגרום לבעיות חמורות, שכן שורות אינן יכולות להקיף מספר דפים, למעט SQL Server 2005, ויש להגביל את ההגבלה או לגרום לשגיאות או לקיצוצים.

אחד ההבדלים העיקריים בין Varchar ו Nvarchar הוא השימוש בחלל פחות ב Varchar. הסיבה לכך היא כי Nvarchar מעסיקה Unicode, אשר, בגלל הטרחה של קידוד הפרטים, תופסת יותר מקום. עבור כל תו מאוחסן, Unicode דורש שני בתים של נתונים, וזה מה שעלול לגרום לערך הנתונים להיראות גבוה יותר בהשוואה לנתונים שאינם Unicode ש- Varchar משתמש בהם. Varchar, לעומת זאת, דורש רק בית אחד של נתונים עבור כל תו מאוחסן. עם זאת, חשוב יותר, למרות השימוש של Unicode תופסת מקום רב יותר, היא עושה לפתור בעיות הנובעות עם תאימות codepage שהם כאב לפתור באופן ידני.

- <->

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

כל פלטפורמות הפיתוח משתמשות במערכות הפעלה מודרניות באופן פנימי, ומאפשרות ל- Unicode לפעול. משמעות הדבר היא כי Nvarchar מועסק לעתים קרובות יותר מאשר Varchar. קידוד המרות נמנע, ובכך מקטין את הזמן הדרוש לקריאה ולכתיבה למסד הנתונים. זה גם מקטין באופן משמעותי את השגיאות, עם ההתאוששות של שגיאות המרה כי להתרחש להיות בעיה פשוטה להתמודד עם.

- 3 ->

היתרון בשימוש ב- Unicode חל גם על אנשים המשתמשים בממשקי יישומים של ASCII, שכן מסד הנתונים מגיב היטב, במיוחד מערכת ההפעלה ואלגוריתמי קואליציית מסד הנתונים. נתוני Unicode מתחמקים מבעיות הקשורות להמרה ונתונים תמיד ניתנים לאימות, אם הם מוגבלים ל- ASCII של 7 סיביות, ללא קשר למערכת המורשת שחייבת להישמר.

סיכום

Varchar ו- Nvarchar מגיעים עם טיפוסים שונים. Varchar עושה שימוש בנתונים שאינם Unicode בזמן ש- Nvarchar עושה שימוש בנתוני Unicode.

שניהם Varchar ו Nvarchar יש סוגים שונים של נתונים שיש לקיים. Varchar שומר נתונים רק ברצף של 1 בתים ו- Nvarchar שומר נתונים ב -2 בתים עבור כל תו

האורך המרבי משתנה גם הוא. אורך Varchar מוגבל ל 8000 בתים ו 4000 בתים הוא הגבול עבור Nvarchar.

הסיבה לכך היא גודל האחסון ב Varchar הוא פשוט יותר לעומת נתוני Unicode בשימוש על ידי Nvarchar.