Бляди тоже ок, ага. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1235.0 пользователей не могут ошибаться!
?6907
прекрасное6424
говно5887
говнорашка5512
хуита4695
anime3056
linux2645
music2620
bnw2588
рашка2560
log2337
ололо2113
pic1812
дунч1734
сталирасты1488
украина1437
быдло1434
bnw_ppl1370
дыбр1237
гімно1158

Текстовых данных мало (порядка 300Mb за два года), нужен полнотекстовый поиск. Востребованы редко, поэтому в памяти держать не хочется, по этой причине не подходит еластик. Идеально подошёл бы sqlite, но, как я понял, без переконпеляции с доп. модулями там проблемы со стеммингом русского языка. Ещё вариант опробовать постгресовский rum, про который писал комар, но тогда придётся держать в памяти постгрес. Можно выгружать скриптом на гитхуп и пользоваться его поиском, но там только точное совпадение слова и показывается всего два топ матча.
Какие ещё есть варианты, чтобы поменьше пердолькаться?

#S5EIO7 (19) / @anonymous / 2651 день назад

В sqlite с версии 3.8 появился partial index — возможность строить индекс по заданному условию.

CREATE INDEX temperature_scale_1 ON temperature(sensor ASC, timestamp ASC) WHERE scale=1; 
CREATE INDEX temperature_scale_5 ON temperature(sensor ASC, timestamp ASC) WHERE scale=5;

Но при запуске prepared statement планировщик выбирает индексы ДО байндинга, а значит ещё не знает, каким будет значение условия, и созданный partial index использован не будет.
Приходится вручную подставлять значения, используемые таким индексом, и снова помнить про экранирование от sql-инъекций, если используются не числовые значения.

sensor, scale, start, end = 1, 5, 1451628000, 1452492000 

c.execute('SELECT * FROM temperature WHERE sensor = ? AND scale = %d AND timestamp BETWEEN ? AND ?' % (scale), (sensor, start, end))
#RHKE5E (3) / @kogda / 2778 дней назад
tfw fts{3,4} работает в 1.5 раза медленнее чем полное сканирование таблицы на маленьких полях, tfw `like '%puk%'` и `match '*puk*'` работают по разному, а `regexp` и `not match` (привет, хисворк) вообще не работает. Но вообще хорошо зделали, мне нр.
#ORLRRR (0) / @mugiseyebrows / 3260 дней назад
> As currently implemented (version 3.5.0) this method still returns a hard-coded value of 512 bytes, since there is no standard way of discovering the true sector size on either Unix or Windows.
#65Z65O (0) / @kerrigan / 3417 дней назад

Binding Values To Prepared Statements

:VVV

#3261XR (3) / @kerrigan / 3768 дней назад
https://www.sqlite.org/lockingv3.html > Locking and concurrency control are handled by the pager module. The pager module is responsible for making SQLite "ACID" (Atomic, Consistent, Isolated, and Durable). The pager module makes sure changes happen all at once, that either all changes occur or none of them do, that two or more processes do not try to access the database in incompatible ways at the same time, and that once changes have been written they persist until explicitly deleted. The pager also provides a memory cache of some of the contents of the disk file. > The pager is unconcerned with the details of B-Trees, text encodings, indices, and so forth. From the point of view of the pager the database consists of a single file of uniform-sized blocks. Each block is called a "page" and is usually 1024 bytes in size. The pages are numbered beginning with 1. So the first 1024 bytes of the database are called "page 1" and the second 1024 bytes are call "page 2" and so forth. All other encoding details are handled by higher layers of the library. The pager communicates with the operating system using one of several modules (Examples: os_unix.c, os_win.c) that provides a uniform abstraction for operating system services. > The pager module effectively controls access for separate threads, or separate processes, or both. Throughout this document whenever the word "process" is written you may substitute the word "thread" without changing the truth of the statement. Интересный модуль. Особенно, если хранить данные в своих форматах (/me косо поглядывает на bitcoind)
#HWHXMC (0+1) / @octagram / 4283 дня назад
SQLite это такая SQL-библиотека, которую 95% людей юзают в приложениях, в которых SQL ВООБЩЕ БЛЯТЬ НАХУЙ НЕ НУЖЕН, СУКА
#Y0H4F1 (3+2) / @stiletto / 4515 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.