SQLite не запускается в отдельном процессе. Таким образом, у вас фактически нет лишних затрат от IPC. Но издержки IPC не так уж и велики, особенно по сравнению с сокетами UNIX. Если вам нужно несколько программ записи (более чем один процесс / поток записывает в базу данных одновременно), затраты на блокировку, вероятно, будут хуже, и MySQL или PostgreSQL будут работать лучше, особенно если они работают на одной машине. Базовый SQL, поддерживаемый всеми этими тремя базами данных, одинаков, поэтому сравнительный анализ не так уж и болезнен.
Обычно вам не нужно выполнять отладку в операторах SQL того же типа, что и в вашей собственной реализации. SQLite работает и уже довольно хорошо отлажен. Маловероятно, что вам когда-либо придется отлаживать: «Хорошо, эта строка существует, почему база данных не находит ее?» и отследить ошибку в обновлении индекса. Отладка SQL совершенно отличается от процедурного кода, и действительно только когда-либо происходит для довольно сложных запросов.
Что касается отладки вашего кода, вы можете довольно легко централизовать ваши SQL-вызовы и добавить трассировку для регистрации ваших запросов, результатов, которые вы получаете, и т. Д. Интерфейс Python SQLite может уже иметь это (не уверен, я обычно используйте Perl). Вероятно, будет проще всего сделать существующий класс Table оберткой вокруг SQLite.
Я бы настоятельно рекомендовал не изобретать велосипед заново. SQLite будет иметь гораздо меньше ошибок и сэкономит вам кучу времени. (Возможно, вы также захотите взглянуть на недавний переход Firefox на использование SQLite для хранения истории и т. Д., Я думаю, что они получили довольно значительное ускорение от этого.)
Кроме того, хорошо оптимизированная реализация C на SQLite, вероятно, немного быстрее, чем любая реализация на чистом Python.