|
2 amaliy mashg‘ulot
|
bet | 3/5 | Sana | 01.03.2023 | Hajmi | 153.76 Kb. | | #43941 |
Bog'liq 2 amaliy mashg‘ulot Tarmoqlar mavzusiga mustaqil ish, metaleap-devops-in-k8s Yetkazib berish to'plami, shuningdek, SQLite3 bajariladigan fayl ko'rinishidagi funktsional mijoz qismini ham o'z ichiga oladi, uning yordamida asosiy kutubxona funktsiyalarini amalga oshirish namoyish etiladi. Mijoz qismi-bu o'zaro faoliyat platformali buyruq qatori yordam dasturi. SQLite-dan o'rnatilgan tizimlarda ham, gigabaytli ma'lumotlar massivlari bo'lgan maxsus mashinalarda ham foydalanish mumkin.
Ma'lumotlar turlari[tahrirlash / tahrirlash kodi]
SQLite dinamik ma'lumotlarni yozishni qo'llab-quvvatlaydi. Mumkin bo'lgan qiymat turlari: INTEGER, REAL, TEXT va BLOB. Maxsus null ham qo'llab-quvvatlanadi.[8]
Matn va BLOB kabi qiymatlarning o'lchamlari SQLite manbalaridagi sqlite_max_length konstantasidan boshqa hech narsa bilan cheklanmaydi, milliardga teng (109)[9].
Har qanday yozuvning istalgan maydonidagi har bir qiymat, jadval maydonlarini e'lon qilishda ko'rsatilgan turdan qat'i nazar, ushbu turlardan biri bo'lishi mumkin. Maydonni e'lon qilishda ko'rsatilgan tur asl imlosida ma'lumot uchun saqlanadi va imtiyozlarni tanlash uchun asos sifatida ishlatiladi ("affinity type" deb nomlanadi: bu boshqa DBMS-larda kamdan-kam uchraydigan yondashuv) ushbu turdagi nomning SQLite-ga tanish bo'lgan narsaga o'xshashligi asosida yashirin turdagi o'zgarishlarni amalga oshirishda. Ushbu algoritm ma'lumotlar turlarining nomlari uchun boshqa ma'lumotlar bazalarida qo'llaniladigan variantlarning keng ro'yxatini tikadi. Agar yozib olingan qiymatni afzal qilingan turga xavfsiz konvertatsiya qilish imkoni bo'lmasa, SQLite qiymatni asl shaklida yozadi. Bazadan qiymatlarni olish uchun har bir tur uchun bir qator funktsiyalar mavjud va agar saqlangan qiymat turi so'ralganga mos kelmasa, u ham iloji boricha o'zgartiriladi.[10]
Cheklovlar [tahrirlash / tahrirlash kodi]
Asosiy manba: Sqlite uchun amalga oshirish chegaralari
SQLite-ning eski versiyalari hech qanday cheklovlarsiz ishlab chiqilgan, yagona shart-ma'lumotlar bazasi barcha hisob-kitoblar 32-bitli butun sonlar yordamida amalga oshiriladigan xotiraga mos kelishi. Bu muayyan muammolarni keltirib chiqardi. Yuqori chegaralar aniqlanmaganligi va shunga mos ravishda to'g'ri sinovdan o'tganligi sababli, SQLite-ni juda ekstremal sharoitlarda ishlatishda xatolar tez-tez uchraydi. Shunday qilib, SQLite-ning yangi versiyalarida cheklovlar joriy etildi, ular endi umumiy testlar to'plami bilan birga sinovdan o'tkazilmoqda. SQLite kutubxonasini kompilyatsiya qilish paytida quyidagi cheklovlar o'rnatiladi, agar kerak bo'lsa, ularni oshirish mumkin:
Tavsif
|
Qiymati
|
Manba kodidagi doimiy
|
Maksimal chiziq uzunligi yoki BLOB maydoni
|
1 000 000 000
|
SQLITE_MAX_LENGTH
|
Ustunlarning maksimal soni
|
2 000
|
SQLITE_MAX_COLUMN
|
SQL ifodasining maksimal uzunligi
|
1 000 000 000
|
SQLITE_MAX_SQL_LENGTH
|
JOIN bilan ifodalardagi jadvallarning maksimal soni
|
64
|
|
Ifoda daraxtining maksimal chuqurligi
|
1 000
|
SQLITE_MAX_EXPR_DEPTH
|
Funktsiya argumentlarining maksimal soni
|
127
|
SQLITE_MAX_FUNCTION_ARG
|
SELECT bilan birlashtirilgan ifodadagi maksimal atamalar soni
|
500
|
SQLITE_MAX_COMPOUND_SELECT
|
Shablonning maksimal uzunligi LIKE yoki GLOB bayonotlari argumenti sifatida
|
50 000
|
SQLITE_MAX_LIKE_PATTERN_LENGTH
|
Bitta SQL ifodasida almashtirish belgilarining maksimal soni
|
999
|
SQLITE_MAX_VARIABLE_NUMBER
|
Triggerlar rekursiyasining maksimal chuqurligi
|
1 000
|
SQLITE_MAX_TRIGGER_DEPTH
|
Biriktirilgan bazalarning maksimal soni
|
10
|
SQLITE_MAX_ATTACHED
|
Ma'lumotlar bazasi sahifasining maksimal hajmi
|
65 536
|
SQLITE_MAX_PAGE_SIZE
|
Ma'lumotlar bazasi faylidagi maksimal sahifalar soni
|
1 073 741 823
|
SQLITE_MAX_PAGE_COUNT
|
3.37.0 versiyasi uchun sqlite_max_page_size qiymati asl kodda aniq ko'rsatilgan standartdan kattaroq bo'lishi mumkin emas. Ma'lumotlar bazasidagi sahifalarning maksimal soni 4294967294. Shunday qilib, ma'lumotlar bazasining maksimal hajmi 1,4+14 bayt (281 terabayt o'nlik yoki 256 bit).[11]
Sqlite3_limit funktsiyasining toifasi va tegishli qiymati yordamida dasturni bajarish paytida ba'zi cheklovlarni pastga qarab o'zgartirish mumkin:
|
| |