Мое мнение - забыть о драйвере между базами данных и сосредоточиться на поиске или создании уровня доступа к данным между базами данных. Несколько причин:
- Сложные запросы (читай: все, что не является игрушкой) неизменно заканчиваются использованием одной или двух специфичных для базы данных функций. Например,
LIMIT
и OFFSET
, обычно используемые для подкачки страниц, не универсальны.
- Рано или поздно вам понадобится массовая вставка, и вы захотите, чтобы это было как можно быстрее, потому что 3 часа лучше, чем 6 часов. У каждой базы данных есть свой «оптимальный» способ сделать это, поэтому ваш DAL все равно будет нуждаться в особом случае.
- Разные базы данных могут предоставлять разные механизмы ограничений - даже пользовательские типы столбцов - которые могут быть полезны, когда это возможно (PostgreSQL отлично подходит для этого).
- Если вы хотите выполнять кэширование любого уровня приложения, вам понадобится DAL в любом случае .
Итак, продолжайте и сами используйте libmysql
- просто спрячьте его за брандмауэром компилятора в вашем DAL и будьте готовы поменять его позже. Вы можете защитить себя от изменения инфраструктуры без использования оболочки SQL с наименьшим общим знаменателем.
Если это не с вами, проверьте SQLAPI ++ .