2008-08-21 14 views
1

Ich habe einen Hochgeschwindigkeits-Transaktionsserver für die Übertragung von Daten über das Internet entwickelt, so dass ich mich nicht auf eine Datenbankimplementierung wie MySQL verlassen muss, um dies bereitzustellen. Das eröffnet die Frage, welche SQL-Version zu verwenden ist?Welches RDBMS sollte ich verwenden?

Ich mag SQLite wirklich, aber ich bin nicht davon überzeugt, es ist industrielle Stärke noch Was ich mag ist, wie leicht es auf Ressourcen ist.

Ich hasste MySQL vor 8 Jahren, aber jetzt ist es offensichtlich industrielle Stärke und meine Partner nutzen es, so ist es die offensichtliche Wahl auf der Serverseite. Wenn ich es benutze, werde ich nur über "localhost" mit dem installierten Server (Windows-Dienst) verbinden. Meine Sorge ist über die Speichernutzung.

Ich lade das Ergebnis nicht in den Speicher, aber ich merke etwa 6 MB für die erste Verbindung. Ich hoffe, nachfolgende Verbindungen sind keine zusätzlichen 6MB!

Wenn ich die eingebettete libmysqld.dll-Bibliothek verwende, lädt dann jede neue Verbindung eine neue Instanz des eingebetteten Client/Server-Codes in den Speicher? Wir gehen davon aus, dass jeder Prozess seinen eigenen Prozessspeicher haben wird ...

Unabhängig davon gibt das Handbuch an, dass bei Verwendung des libmysqld-Embedded-Servers die Speichervorteile beim Abrufen der Ergebnisse Zeile für Zeile im Wesentlichen verloren gehen, weil "Speicherverbrauch inkrementell erhöht sich mit jeder abgerufenen Zeile, bis mysql_free_result() aufgerufen wird. " http://dev.mysql.com/doc/refman/5.1/en/mysql-use-result.html

Dies bedeutet, dass ich den installierten Dienst verwenden muss. Aber ist das so schnell wie der Embedded Server?

Gibt es andere Low-Cost-Aromen mit hoher Zuverlässigkeit?

Antwort

3

SQLite wird in mehr Anwendungen als jede andere DB verwendet. (Zitat erforderlich).

Es gibt einige Probleme mit MySQL, so dass es keine Integritätsbedingungen berücksichtigt.

Ich bin derzeit ein Fan von PostgreSQL, die auch frei verfügbar ist (und, ich denke, wenn Sie die Lizenzierung von MySQL lesen, stellt sich heraus, eine kommerziellere Lizenz zu haben). Es scheint eine höhere Leistung als SQLite zu sein, was wahrscheinlich mehr damit zu tun hat, dass es auf einem SMP-Rechner läuft und verschiedene Threads nutzt. Es scheint auch ziemlich solide zu sein.

+0

Hinweis: Bei Verwendung der InnoDB-Speicher-Engine mit MySQL werden Fremdschlüsseleinschränkungen unterstützt. InnoDB ist seit mindestens Version 3.23 mit MySQL gebündelt, und InnoDB wird zur Standardspeicher-Engine in MySQL 5.5. –

1

Entschuldigung, um pedantisch zu sein, aber der Titel sollte wirklich sein "Welches RDBMS?" - Die Art, wie es formuliert ist, macht ungefähr so ​​viel Sinn wie "Welches Java?" oder "Which Internet?" ...

Verwandte Themen