SQLite

צילום מסך תוכנה:
SQLite
פרטי תוכנה:
גרסה: 3.24.0 מעודכן
טען תאריך: 22 Jun 18
מפתחים: D. Richard Hipp
רשיון: ללא תשלום
פופולריות: 21

Rating: 5.0/5 (Total Votes: 1)

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


תכונות במבט אחד

התכונות העיקריות כוללות תמיכה בעסקאות מבודדות, אטומיות, עמידות ועקביות, יישום SQL92, קבצי מסד נתונים ניתנים לחלוקה חופשית בין מחשבים, תומך במאגרים של עד 2 טרה-בייט, תמיכה בגושים ובמחרוזות בגודל ג 'יגה, טביעת רגל קטנה, כמו כמו גם קל לשימוש ו- API פשוט מאוד (ממשק תכנות יישומים).

בנוסף, SQLite אינה דורשת תצורה ראשונית או ניהול נוסף, מאפשרת למפתחים לאחסן מסד נתונים מלא בקובץ דיסק יחיד על גבי פלטפורמה, המושלם לשימוש בתבניות קובץ יישומים, ללא תלות חיצונית, ב TCL (כלי פקודה שפה) כריכות, ותיעוד מקיף.

חיבורים עבור שפות תכנות רבות אחרות זמינות בנפרד. קוד המקור שלה הוא הגיב היטב והוא מגיע עם לקוח העצמאי CLI (ממשק שורת הפקודה) לקוח אשר תוכנן מן לקזז לשמש לניהול מסדי נתונים של SQLite.


מה אני יכול להשתמש בו?

מנוע מסד הנתונים SQLite יכול לשמש לכל מטרה, אישית או מסחרית. השימושים המוצעים עבור SQLite כוללים מסד נתונים עבור גאדג'טים, מסד נתונים באתר, stand-in עבור RDBMS ארגוניים (Relational Database Management System), כמו גם פורמט קובץ היישום.


מתחת למכסה המנוע ומערכות ההפעלה הנתמכות

הפצה SQLite מגיע עם תוכנית שורת פקודה עצמאית (SQL) שניתן להשתמש בה כדי לנהל את מסד הנתונים SQLite ומשמש כדוגמה כיצד להשתמש בספריית SQLite. הוא כתוב כולו בשפת התכנות ANSI-C.

מערכות ההפעלה השולחניות הנתמכות כוללות את GNU / Linux, Mac OS X ו- Microsoft Windows. מערכות הפעלה ניידות נתמכות כוללות Android ו- iOS. זה נבדק בהצלחה עם שתי פלטפורמות החומרה של 32 סיביות ו- 64 סיביות, וזהו נייד בקלות למערכות הפעלה אחרות.

מה חדש במהדורה זו:

  • נקודות עיקריות במהדורה זו כוללות תמיכה ב- UPSERT בסגנון PostgreSQL וביצועים משופרים, במיוחד עבור שאילתות ORDER BY LIMIT.

מה חדש בגרסה:

  • נצל את יכולות האטום-כתיבה במערכת הקבצים F2FS, כאשר היא זמינה, עבור תקורה מופחתת משמעותית בעסקה. פעולה זו דורשת כעת את האפשרות לקמפיין זמן של SQLITE_ENABLE_BATCH_ATOMIC_WRITE.
  • אפשר לפקודות ATTACH ו- DETACH לפעול בתוך עסקה.
  • אפשר לטבלאות וירטואליות ללא ROWID להיות ניתנות לכתיבה אם המפתח הראשי מכיל עמודה אחת בלבד.
  • ה- & quot; fsync () & quot; המתרחשת לאחר הכותרת נכתב באיפוס WAL עכשיו משתמש בהגדרות סינכרון עבור מחסומים. פירוש הדבר שהוא ישתמש ב & quot; fullfsync & quot; על macs אם pragma checkpoint_fullfsync מוגדר על.
  • הפונקציה sqlite3_sourceid מנסה לזהות אם קוד המקור השתנה ממה שנבדק לבקרת גרסאות, ואם יש שינויים, ארבעת התווים האחרונים של hash בגרסה מוצגים כ & quot; alt1 & quot; או & quot; alt2 & quot ;. המטרה היא לזהות עריכות מקריות ו / או רשלניות. זייפן יכול לערער את התכונה הזו.
  • שיפור ציטוט של שמות עמודות עבור CREATE TABLE AS, עם שאילתה מצטברת בצד ימין.
  • פחות & quot; stat () & quot; מערכת שיחות שהונפקו על ידי
  • שיפרה את האופטימיזציה של LIKE כך שתפעל עם סעיף ESCAPE.
  • בדיקת גרסת PRAGMA משופרת ו- PRAGMA Quick_check כדי לזהות את השחיתות בשורה מעורפלת שחסרה קודם לכן. גם לעדכן הן pragmas כך שהם מחזירים טקסט שגיאה במקום SQLITE_CORRUPT כאשר נתקלים בשחיתות רשומות.
  • מתכנן השאילתות מעדיף כעת ליישם שאילתות משנה של FROM-sub באמצעות שיתוף פעולה, במקום להשתמש באופטימיזציה של שיטוח שאילתות. התמיכה בשימוש בשיתופי פעולה עבור שאילתות משנה אינה יכולה להיות מושבתת יותר.
  • העבר מידע על! =, IS, IS, NOT NULL ו- IS NULL לתוך שיטת xBestIndex של טבלאות וירטואליות.
  • שיפר את הטבלה הווירטואלית של CSV כך שהוא יקבל את שורת הקלט האחרונה אם התו האחרון של הקו החדש חסר.
  • הסר את ה- scratch & quot; מקצה זיכרון. החלף אותו בהגדרת התצורה של SQLITE_CONFIG_SMALL_MALLOC, המעניקה ל- SQLite רמז שיש להקפיד על הקצאות זיכרון גדולות במידת האפשר.
  • נוסף את הטבלה הווירטואלית של Swarm לטבלת ההרחבה הווירטואלית הקיימת.
  • הוספת הטבלה הווירטואלית sqlite_dbpage למתן גישה ישירה לדפים בקובץ מסד הנתונים. קוד המקור מובנה בתוך המיזוג ומופעל באמצעות אפשרות ההידור -DSQLITE_ENABLE_DBPAGE_VTAB בזמן.
  • הוסף סוג חדש של fts5vocab טבלה וירטואלית - & quot; מופע & quot; - המספק גישה ישירה למדד טקסט מלא FTS5 ברמה הנמוכה ביותר האפשרית.
  • הסרת שיחה ל- rand_s () ב- Windows VFS מאחר שהיא גרמה לבעיות ב- Firefox במחשבים ניידים ישנים יותר.
  • קוד המקור src / shell.c אל פגז שורת הפקודה אינו נמצא עוד בשליטה בגרסה. קובץ זה נוצר כעת כחלק מתהליך הבנייה.
  • מיקרו-אופטימיזציות שונות מפחיתה את השימוש ב- CPU בכ -2.1%.
  • תיקוני באגים:
  • תקן תצהיר assert פגום () שגילה OSSFuzz. כרטיס cb91bf4290c211d
  • תקן דליפת זיכרון מעורפלת ב- sqlite3_result_pointer (). כרטיס 7486aa54b968e9b
  • הימנע משגיאה אפשרית לאחר שימוש על ידי דחיית איפוס סכימה עד לאחר שתכנון השאילתות סיים לפעול. כרטיס להיות 436a7f4587ce5
  • השתמש רק באינדקסים על-ביטויים כדי לבצע אופטימיזציה של ORDER BY או GROUP BY אם ה- COLLATE נכון. כרטיס e20dd54ab0e4383
  • תקן שגיאת קביעה שהתעוררה כאשר הביטוי ב- index-on-expressions הוא קבוע. כרטיס aa98619ad08ddca
  • תקן שגיאת קביעה שעלולה להתרחש בעקבות PRAGMA reverse_unordered_selects. כרטיס cb91bf4290c211d
  • תיקון sgfault שיכול להתרחש בשאילתות המשתמשות בפונקציות בעלות טבלה בשאילתת משנה של IN או EXISTS. כרטיס b899b6042f97f5
  • תקן בעיה פוטנציאלית של הצפת מספרים שלמים בעת הכנת ביטוי טבלה נפוץ מסוים. זו היתה בעיה נוספת שהתגלתה על ידי OSSFuzz. Check-in 6ee8cb6ae5.
  • תקן את האפשרות לקרוא מחוץ לקריאה בעת שאילתה בקובץ מסד נתונים פגום, בעיה שזוהתה על ידי נטלי סילנוביץ 'מ- Google Project Zero. Check-in 04925dee41a21f.

מה חדש בגירסה 3.20.1:

  • גרסת תיקון 3.20.1 גירסה משנה שתי שורות קוד בממשק sqlite3_result_pointer () כדי לתקן דליפת זיכרון נדירה.

מה חדש בגירסה 3.9.2:

  • גרסת SQLite 3.9.2 היא תיקון תיקון תיקון שני באגים מעורפלים.

מה חדש בגרסה 3.8.9:

  • תכונות חדשות במהדורה זו כוללות את הפקודה PRAGMA index_xinfo, את ממשק sqlite3_status64 () ואת הפקודה "dinfo" של קליפת שורת הפקודה.

מה חדש בגירסה 3.8.8.2:

  • שחרור 3.8.8.2 התיקון מתקן בעיה קטנה אחת: היא מבטיחה כי פעולת sqlite3_wal_checkpoint (TRUNCATE) תמיד לחתוך את יומן לכתוב מראש גם אם יומן כבר מאופס ולא הכיל תוכן חדש. לא ברור אם זהו תיקון באגים או תכונה חדשה.
  • משהו כזה בדרך כלל ייכנס לשחרור הבא באופן קבוע, אך משתמש SQLite בולט נזקק לשינוי במהירות, ולכן שמחנו למהר אותו באמצעות תיקון זה.
  • אין סיבה לשדרג אלא אם כן אתה באמת צריך את התנהגות משופרת של.

מה חדש בגרסה 3.8.8.1:

  • תיקון באג בהיגיון המיון, שמקורו בגירסה 3.8.4, שעלול לגרום לפלט להופיע בסדר הלא נכון בשאילתות המכילות סעיף ORDER BY, סעיף LIMIT, ויש בו כ -60 עמודות או יותר תוצאת התוצאה. כרטיס f97c4637102a3ae72b79.
  • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
  • SHA1 עבור sqlite3.c: 33987fb50dcc09f1429a653d6b47672f5a96f19e

מה חדש בגרסה 3.8.8:

  • תכונות חדשות:
  • נוסף הפקודה PRAGMA data_version שניתן להשתמש בה כדי לקבוע אם קובץ מסד נתונים השתנה בתהליך אחר.
  • הוסיף את האפשרות SQLITE_CHECKPOINT_TRUNCATE לממשק sqlite3_wal_checkpoint_v2 (), עם שיפורים מתאימים ל - PRAGMA wal_checkpoint.
  • הוסיף את הממשק sqlite3_stmt_scanstatus (), זמין רק בעת הידור עם SQLITE_ENABLE_STMT_SCANSTATUS.
  • ה- sqlite3_table_column_metadata () משופר לעבוד בצורה נכונה בטבלאות ללא ROWID ולבדוק את קיומו של טבלה אם הפרמטר שם עמודה הוא NULL. הממשק נכלל כעת גם בבנייה כברירת מחדל, ללא צורך באפשרות זמן ההידור של SQLITE_ENABLE_COLUMN_METADATA.
  • נוסף את האפשרות לקמפיין זמן של SQLITE_ENABLE_API_ARMOR.
  • נוסף את האפשרות לקמפיין זמן של SQLITE_REVERSE_UNORDERED_SELECTS.
  • נוסף את האפשרות לזמן ההמרה של SQLITE_SORTER_PMASZ ואת אפשרות ההתחלה של SQLITE_CONFIG_PMASZ.
  • הוספת האפשרות SQLITE_CONFIG_PCACHE_HDRSZ ל- sqlite3_config () המאפשרת ליישומים לקבוע את כמות הזיכרון המתאימה לשימוש עם SQLITE_CONFIG_PAGECACHE.
  • מספר השורות בסעיף VALUES אינו מוגבל עוד על ידי SQLITE_LIMIT_COMPOUND_SELECT.
  • הוסיף את התוסף load.c loadable אשר מיישם פונקציית SQL () SQL שתעריך את SQL באופן רקורסיבי.
  • שיפורים בביצועים:
  • צמצם את מספר פעולות ה- memcpy () שמעורבות באיזון עץ b, עבור שיפור של 3.2% בביצועים הכוללים.
  • שיפורים לאומדני עלות עבור האופטימיזציה של דילוגים.
  • האופטימיזציה האוטומטית של יצירת האינדקס יכולה כעת ליצור אינדקס חלקי אם הדבר מתאים.
  • תיקוני באגים:
  • ודא עמידות לאחר אובדן כוח עם "PRAGMA journal_mode = TRUNCATE" על ידי התקשרות fsync () מיד לאחר חתוך את קובץ היומן.
  • מתכנן השאילתה מזהה כעת שכל עמודה בטבלה הימנית של LEFT JOIN יכולה להיות NULL, גם אם לעמודה זו יש אילוץ NOT NULL. הימנע מנסה לייעל את בדיקות NULL במקרים אלה. תקן עבור כרטיס 6f2222d550f5b0ee7ed.
  • ודא ש- ORDER BY מציב שורות בסדר עולה גם אם האופרטור DISTINCT מיושם באמצעות אינדקס יורד. תקן עבור כרטיס c5ea805691bfc4204b1cb9e.
  • תקן מירוצי נתונים שעלולים להתרחש תחת לחץ כאשר הם פועלים עם חוטים רבים במצב מטמון משותף שבו חלק מהחוטים פתוחים וסוגרים חיבורים.
  • תיקון באגים לקרוס מעורפלים שנמצאו על ידי lup אמריקאי מטושטשת. כרטיס a59ae93ee990a55.
  • לעקוף באג באופטימיזציה של GCC (עבור gcc 4.2.1 ב- MacOS 10.7) שגרם להארכת R-Tree לחשב תוצאות שגויות בעת הידור עם -O3.
  • שינויים אחרים:
  • בטל את השימוש בשגרת ה- c-library של strchrnul (), אלא אם כן היא מופעלת באופן ספציפי באמצעות אפשרות ההידור -DHAVE_STRCHRNULL.
  • שיפורים ביעילות ובדיוק של הסבירות (), סביר (), ולא סביר () פונקציות רמז של SQL.
  • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
  • SHA1 עבור sqlite3.c: 91aea4cc722371d58aae3d22e94d2a4165276905

מה חדש בגירסה 3.8.7.4:

  • תיקוני מהדורה אלה מוסיפים למוטקס הנדרש על-ידי השינויים בטלאי 3.8.7.3, אך הושמטו בטעות. מוטקס לא היה נדרש על ידי כל בדיקות SQLite פנימי, אבל פיירפוקס קורסת בלי זה. במקרים מבחן נוספו על מנת להבטיח mutex הוא לעולם לא החמיץ שוב.

מה חדש בגירסה 3.8.7.3:

  • תיקון באג: ודא שהאובייקטים השמורים במטמון KeyInfo (הפשטה פנימית שאינה גלויה ליישום) אינם מתפקדים בעת פעולה במצב מטמון משותף ולעתים קרובות סגירה ופתיחה מחדש של חיבורי מסד נתונים מסוימים, תוך השארת חיבורי מסד נתונים אחרים באותו מטמון משותף ברציפות. כרטיס e4a18565a36884b00edf.
  • תיקון באגים: עליך לזהות שכל עמודה בטבלה הימנית של LEFT JOIN יכולה להיות NULL גם אם לעמודה יש ​​אילוף NOT NULL. אל תשתמש באופטימיזציות שמניחות שהעמוד לעולם אינו NULL. כרטיס 6f2222d550f5b0ee7ed.
  • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
  • SHA1 עבור sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

מה חדש בגירסה 3.8.7.2:

  • הסיבה העיקרית למהדורה זו היא להגביר את הפקודה ROLLBACK כך שהיא מאפשרת שאילתות ריצה על אותו חיבור מסד נתונים כדי להמשיך לרוץ כל עוד החזרה לא משנה את הסכימה. בכל הגירסאות הקודמות של SQLite, ROLLBACK יגרום לשאלות ממתינות לעצור באופן מיידי ולהחזיר את SQLITE_ABORT או את SQLITE_ABORT_ROLLBACK. שאילתות בהמתנה עדיין יופעלו אם ה- ROLLBACK משנה את סכימת מסד הנתונים, אך החל משחרור תיקון זה, השאילתות מותרות להמשיך לפעול אם הסכימה אינה משתנה.
  • בנוסף לשיפור ה- ROLLBACK, מהדורת תיקון זו כוללת גם תיקונים עבור שלושה באגים מעורפלים.

מה חדש בגירסה 3.8.7.1:

  • הסיבה העיקרית לשחרור באגים זה היא לטפל בבעיה בעדכון ערך השדות בסוף הטבלה שנוספו באמצעות ALTER TABLE ADD COLUMN. בעיה זו 1 הופיע לראשונה שחרור 3.8.7.
  • עוד מטרד קל בשחרור 3.8.7 היה העובדה כי אנדרואיד לבנות ניסה להשתמש בפונקציה strchrnul () מן הספרייה C רגיל אבל הפונקציה הזו אינה זמינה ב- Android. Google Builds נאלץ להוסיף -DHAVE_STRCHRNUL = 0 כדי לעקוף את הבעיה. תיקון זה מתקן זאת כך שבניית Android תפעל כעת ללא שינויים.
  • הפעולה של PRAGMA journal_mode = TRUNCATE שופרה כך שהיא מפעילה את fsync () לאחר קיצוץ קובץ היומן כאשר PRAGMA סינכרוני = FULL. זה עוזר לשמור על עמידות העסקה במקרה של אובדן חשמל המתרחשים זמן קצר לאחר ביצוע.
  • לבסוף, שתי בעיות ארוכות ומסתוריות הקשורות בריצה UPDATE ו- DELETE על VIEWs תוקנו.

מה חדש בגרסה 3.8.7:

  • רוב השינויים מהמהדורה הקודמת היו מיקרו-אופטימיזציות שנועדו לסייע ל- SQLite לרוץ מהר יותר. לכל אופטימיזציה אישית יש השפעה קטנה על הביצועים. אבל השיפורים מסתכמים. נמדד על עומס עבודה מוגדר היטב (אשר מפתחי SQLite להשתמש כ proxy עבור עומס עבודה יישום טיפוסי) באמצעות מטמון על לינוקס ו מלוקט עם GCC 4.8.1 ו - או על x64 לינוקס, המהדורה הנוכחית עושה יותר מ -20% עבודה יותר עבור אותו מספר מחזורי מעבד בהשוואה למהדורה הקודמת. Cachegrind אינו מעבד אמיתי, ועומס העבודה המשמש למדידה הוא רק proxy. לכן הביצועים שלך עשויים להשתנות. אנו מצפים לראות כמחצית מהשיפור הנמדד והמדווח ביישומים בעולם האמיתי. 10% הוא פחות מ 20% אבל זה עדיין די טוב, אנחנו חושבים.
  • מהדורה זו כוללת סדרה חדשה של ממשקי C-Language עם 64 סיביות לא חתומות במקום פרמטרים באורך 32 סיביות חתומים. ממשקי ה- API החדשים אינם מספקים יכולות חדשות. אבל הם עושים את זה קל יותר לכתוב יישומים עמידים יותר פגיעויות הצפת שלם.
  • גרסה זו כוללת גם סדרן חדש שיכול להשתמש בחוטים מרובים כדי לסייע בפעולות מיון גדולות. (פעולות מיון נדרשות לעיתים כדי ליישם את הסדרים של ORDER BY ו / או GROUP BY, והן כמעט תמיד דרושות עבור CREATE INDEX.) המולטימדיה מרובת החוטים מושבתת כברירת מחדל ויש להפעיל אותה באמצעות פקודת SQL של ​​PRAGMA thread. שים לב כי סדרן מרובה הליכי מספק ביצועים בזמן אמת מהר יותר עבור מיני גדול, אבל זה גם משתמש יותר מחזורי CPU ועוד אנרגיה.

מה חדש בגרסה 3.8.3.1:

  • גרסת SQLite 3.8.3.1 מתקן את הבאג בגרסאות 3.8.1, 3.8.2 ו - 3.8.3 שעלולות לגרום לשאילתות להשמיט שורות חוקיות. מומלץ לבצע שדרוג מגרסאות אלה.
  • הבעיה מתעוררת רק אם SQLite נערך עם אפשרויות העריכה של SQLITE_ENABLE_STAT3 או SQLITE_ENABLE_STAT4. במקרה זה, אם לשאילתה יש סעיף WHERE המכיל ביטויים כגון זה:
  • WHERE (expr1 או expr2 או ... או exprN) והעמוד אינו NULL
  • כאשר כל expr1 דרך exprN מתאימים לשימוש על ידי אינדקסים, ולאחר מכן במהלך תכנון השאילתה SQLite עשוי בטעות להמיר את "טור הוא לא NULL" המונח לתוך "טור & gt; NULL". אבל המונח השני הוא מעולם לא נכון, ולכן השאילתה לא תחזיר שום שורות.

מה חדש בגרסה 3.8.3:

  • נוסף תמיכה עבור ביטויים נפוצים בטבלה ואת הסעיף עם.
  • נוסף את הפונקציה SQLf. (
  • )
  • הוסיף את SQLITE_DETERMINISTIC כקובץ אופציונלי בארגומנט הרביעי לממשקים sqlite3_create_function () וממשקים קשורים, ומספק ליישומים את היכולת ליצור פונקציות חדשות שניתן לזיהוי מתוך לולאות פנימיות כאשר יש להן טיעונים קבועים.
  • הוסף קוד שגיאה של SQLITE_READONLY_DBMOVED, הוחזר בתחילת עסקה, כדי לציין שקובץ מסד הנתונים הבסיסי שונה או הועבר אל מתחת ל- SQLite.
  • אפשר ביטויים שרירותיים, כולל שיחות פונקציה ותת שאילתות, בארגומנט שם הקובץ ל- ATTACH.
  • אפשר להשתמש במשפט VALUES בכל מקום שבו משפט SELECT חוקי.
  • החזר את ה- PRNG שבו נעשה שימוש ב- sqlite3_randomness (N, P) כאשר הוא מופעל עם N == 0. יש להחזיר אוטומטית לאחר מזלג () ב- Unix.
  • שפר את הטבלה הווירטואלית spellfix1 כך שתוכל לחפש ביעילות על ידי שורה.
  • שיפורי ביצועים.
  • שיפורים בהערות בתצוגת בייט של VDBE בעת הפעלת EXPLAIN.
  • הוסף את ההוראה "% token_class" אל מחולל מנתח לימון והשתמש בה כדי לפשט את הדקדוק.
  • שנה את קוד המקור של LEMON כדי להימנע מפונקציות C-Library ש- OpenBSD רואה בהן מסוכנות. (לדוגמה: sprintf).
  • תיקון באגים: בתכונת הייבוא ​​CSV של שורת הפקודה, אל תסתיים שדה כאשר מתרחשת ציטוט כפול שנמחק בסוף קו CRLN.
  • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
  • SHA1 עבור sqlite3.c: 98a07da78f71b0275e8d9c510486877adc31dbee

תוכנה דומה

תגובות ל SQLite

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!