ďťż

SQLite - co myślicie o tej bazie? Brak kontatybilności z MySQL

       

Podstrony


telcocafe

Serwer SQLite wkompilowany w PHP od wersji 5. Baza danych jest plikiem tekstowym, umieszczonym wraz z innymi plikami. Myślę nad wprowadzeniem jej obsługi w F3Site, lecz jest dużo problemów.

Kilka pytań:
1. Czy administratorzy blokują obsługę bazy SQLite na darmowych serwerach?
2. Czy jest sens wprowadzać obsługę SQLite? Wyraźcie swoją opinię.

Miałem nadzieję, że język SQL jest na tyle jednolity, iż nie będzie problemów z kompatybilnością i nie będzie trzeba zbytnio modyfikować zapytań. Okazało się inaczej. :( Poniżej przedstawię kilka z nich.

Autoincrement
MySQL: auto_increment
SQLite: autoincrement

Problem jest o tyle uciążliwy, że podczas dodawania rekordów MySQL zrozumie, że "" oznacza, iż ma wstawić automatycznie wartość auto_increment, zaś dla SQLite oznacza NIC.

Losowy rekord
MySQL: RAND()
SQLite: Random()

Nieobsługiwane funkcje przez SQLite
NOW(), instrukcja &&...

Prawdopodobnie zrezygnuję z obsługi SQLite w skrypcie - może się stać przez to niestabilny.
Użytkownik Ferrari edytował ten post 28 grudzień 2006, 22:42


punBB ma po 3 zapytania na każdy typ bazy jaki wspiera (mysql, sqlite i postgresql) tam gdzie zapytania się różnią.
Odnośnie SQLite - swego czasu widziałem phpinfo na ehost.pl i tam było SQLite i PDO SQLite, a nie było np. MySQLi. i PDO MySQL. Jak chcesz robić aplikację niezależną od typu bazy to użyj ORMa typu Propel (i frameworka ;)). Musisz dokonać wyboru czy robisz prosty skrypcik na darmowe hosty o słabych możliwościach czy robisz coś większego i profesjonalnego posiadającego pewne wymagania.
Użytkownik Riklaunim edytował ten post 28 grudzień 2006, 23:37
ja tak kiedys czytalem ale nie pamietam czy to tak bylo ale ponoc sqlite moze obsluzyc wiecej userow na stronie bez duzego spadku wydajnosci ale nie wiem czy dobrze to zinterpretowalem ale tak to bylo napisane.

SQLite jest bardzo szybka w odczycie (SELECT) ale wolniejsza od MySQL w zapisie (INSER i częściowo UPDATE), lecz można trochę tuningować SQLite ;) dla systemu dodatkową zaletą jest brak kolejnego działającego serwera (jak np. z MySQL).



IMO powinieneś wprowadzić obsługę SQLite nawet ze względu uniwersalności. wtedy skrypt będzie można zainstalowany na większej ilości serwerów. podczas instalacji mógłbyś napisać jakie są różnice i jak sprawdzić czy określony typ bazy jest dostępny. sterownik db w punbb jest świetnym przykładem takiej uniwersalności. :)

Na razie wycofałem się z dodania obsługi SQLite. Głównym powodem jest problem z polem autoincrement.
http://www.w3schools.../sql_insert.asp
Z tej strony można zrozumieć, że nie jest wymagane podawanie nazw pól przed VALUES, dlatego po wpisaniu "" w miejsce pola ID (autoincrement), SQLite powinien zrozumieć, że ma wstawić wartość automatycznie.

Jeśli poprawią ten błąd i uczynią język bardziej zgodny z MySQL, wtedy pomyślę nad tym.

http://www.sqlite.org/lang_insert.html
Może jest inne wyjście?
Użytkownik Ferrari edytował ten post 31 grudzień 2006, 19:01
Rozwiązanie punBB lub zastosowanie ORMa typu propel.
Obecnie zajmuję się Django, który ma swój genialny ORM - zero SQL i moje aplikacje mogą działać pod MySQL, SQLite, Postgresem a od Django 1.0 również pod Firebirdem i Oracle ;)

heh...

Lepiej gdyby ktoś napisał coś w stylu MySQLite - bazę danych która opierała by się na MySQL i SQLite

( język z MySQL, ale wszstko sprowadzało by się do plików tak jak w SQLite )
Użytkownik fenekpl edytował ten post 01 styczeń 2007, 04:33

Lepiej gdyby ktoś napisał coś w stylu MySQLite - bazę danych która opierała by się na MySQL i SQLite

( język z MySQL, ale wszstko sprowadzało by się do plików tak jak w SQLite )

Kod SQLite jest w domenie publicznej (public domain) i można z nim robić wszystko. Jak widać nikomu się nie chce robić takiego mieszańca... MySQL czy PostgreSQL to bazy produkcyjne na duże obciążenia, SQLite stosowana jest w mniejszych projektach dla mniej ważnych danych.

No jeszcze mozna poruszyc temat bezpieczenstwa. Baza MySql jest jednak bardziej zabezpieczona niz SqLite.

jak ktos chce to znalazlem cos takiego do SqLite http://webcity.pl/we...tykuly.php/t/46

Lub też coś takiego - ja używasz SQLite to wypadałoby używać transakcji i obsługiwać błędy bazy poprzez wyjątki.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.