[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