[Comm] Производительность SQLite!
Roman Savochenko
=?iso-8859-1?q?rom=5Fas_=CE=C1_diyaorg=2Edp=2Eua?=
Вт Ноя 30 10:22:34 MSK 2004
Alexey Rusakov wrote:
> On 29.11.2004 20:13, Roman Savochenko wrote:
>
>> Всем привет!
>>
>> Начал я тут пользовать SQLite 3.0, привязал к своему проекту,
>> запустил тест и получил странный результат.
>> А странность заключается в низкой скорости. Ниже приведено сравнение
>> с другими БД:
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> Производятся операции над 200 записями (строками). Таблица состоит из
>> 5 колонок разных типов.
>> -------------------------------------------------------------------------------------------
>>
>> Операции | SQLite | DBF(своя реализ) | MySQL |
>> --------------------------------------------------------------------------------------------
>>
>> Создание 200 строк: | 2.66 сек | 0.05 сек |
>> 0.19 |
>> Обновление 200 строк: | 2.73 сек | 0.06 сек |
>> 0.18 |
>> Получение 200 строк: | 0.09 сек | 0.06 сек |
>> 0.12 |
>> Удаление 200 строк: | 2.25 сек | 0.01 сек |
>> 0.12 |
>> //-------------------------------------------------------------------------------------------------------------------------------------------------
>>
>>
>> Может там чего настроить нужно?
>> А то, что-то, он далеко не быстрый.
>
> Какие индексы определены? Какие запросы выполнялись?
Адресация производится по ключевым полям, в случае с тестом это одно
ключевое поле "name" типа TEXT.
Обращаюсь к БД с помощью функции sqlite3_get_table(); обёрта над этой
функцией практически такая же как и для
MySQL.
SQL запросы такиеже как и для MySQL: CREATE, INSERT, UPDATE, SELECT, DROP.
В дополнении к вопросу производительности возникло ещё парочка:
- Как получить, просто, список колонок в таблице?
В MySQL это делается запросом типа <SELECT * FROM "tbl1" WHERE 0>
- Есть имена колонок на которые SQLite ругается. Например на запрос:
CREATE TABLE "test2" ("name" TEXT PRIMARY KEY, "num" DOUBLE, "TABLE" TEXT);
Ругается: <Request error: near "TABLE": syntax error>.
По мне, так это недопустимо!
Да и в MySQL такого безобразия нет.
С уважением Роман!
Подробная информация о списке рассылки community