[#] sqlite3
Andrew Lobanov(tavern,1) — All
2016-06-12 16:19:28


Что-то в сабже очень грустно работает подсчёт строк в таблице. Каких-то 42+к записей на нетбуке считает около пяти секунд. Есть спобос быстрого подсчёта строк в связке python3 и sqlite3?

[#] Re: sqlite3
Andrew Lobanov(tavern,1) — vit01
2016-06-13 10:58:29


vit01> Ты делаешь просто SELECT COUNT(*) from ... ? Можно попробовать создать индекс в БД и проделывать хаки с ним.

Печальней даже стало. Подсчёт длины выборки стал быстрее раза в два (всё равно около 2-3 секунд), но существенно просела скорость добавления записей.

vit01> Может быть, здесь что-то полезное тебе есть: http://www.sqlite.org/cvstrac/wiki?p=PerformanceTuning

Спасибо. Почитаю как посвободней станет.


Как вы уже наверняка догадались, я пытаюсь прикрутить sqlite к цезию. В целом доработки минимальные требуются, и всё работает просто отлично, кроме подсчёта длины индекса. Надо думать как обойти сие досадное недоразумение, так как в целом мне такое положение дел понравилось.

2vit01: У тебя есть какие-нибудь наработки по формату базы? Может, есть смысл посмотреть в сторону твоей реализации ноды?

[#] Re: sqlite3
vit01(mira, 1) — Andrew Lobanov
2016-06-12 16:39:52


Ты делаешь просто SELECT COUNT(*) from ... ? Можно попробовать создать индекс в БД и проделывать хаки с ним.

Может быть, здесь что-то полезное тебе есть: http://www.sqlite.org/cvstrac/wiki?p=PerformanceTuning

[#] Re: sqlite3
vit01(mira, 1) — Andrew Lobanov
2016-06-13 11:21:24


AL> У тебя есть какие-нибудь наработки по формату базы? Может, есть смысл посмотреть в сторону твоей реализации ноды?

Вот так создаётся база в ii-php:

CREATE TABLE IF NOT EXISTS `$db->tablename` (
       `number` bigint NOT NULL auto_increment,
       `id` varchar(20) NOT NULL,
       `tags` text,
       `echoarea` text NOT NULL,
       `date` varchar(30) NOT NULL default '0',
       `msgfrom` text,
       `addr` text,
       `msgto` text,
       `subj` text not NULL,
       `msg` text not NULL,
        primary key(number, id)
	) ENGINE InnoDB default charset='utf8';
");

Для sqlite, конечно же, следует изменить типы данных (в том числе из-за производительности). Насчёт поля date я подставил varchar(30), чтобы избежать проблемы 2038, но это может быть неудобно для поиска, так что здесь надо бы что-нибудь другое. И с primary key тоже свои особенности должны быть.

[#] Re: sqlite3
Andrew Lobanov(tavern,1) — vit01
2016-06-13 11:38:08


AL>> У тебя есть какие-нибудь наработки по формату базы? Может, есть смысл посмотреть в сторону твоей реализации ноды?

vit01> Вот так создаётся база в ii-php:

Примерно так ж поступил и я. Всё отлично работает, кроме подсчёта количества сообщений. Ладно. Буду дальше думать.