Время выполнения запросов SQLite -
OFFREAL - 17.02.2011
Здравствуйте, я по такому вопросу:
Использую на своем сервере SQLite базу данных (стандартный a_sampdb.inc):
Время выполнения запросов типа SELECT не более 2 ms ( для сложных - около 5 ms ), а запросов типа UPDATE - около 150 ms, и мне кажется, что это слишком много!
Скажите пожалуйста, это нормально или нет?
- - - - -
Да, и какова максимальная длинна запроса при использовании db_query ?
Re: Время выполнения запросов SQLite -
Stepashka - 18.02.2011
успеешь моргнуть за это время тогда это удет много.
Хочешь покажу запросы которые выполняются по 30 минут?
максимальной длины нет.
Re: Время выполнения запросов SQLite -
Orr_Orange - 18.02.2011
Quote:
Originally Posted by Stepashka
Хочешь покажу запросы которые выполняются по 30 минут?
|
Хочу.
Re: Время выполнения запросов SQLite -
Stepashka - 18.02.2011
Наслаждайся

Code:
SELECT u.`id` object_id, 3 object_type, 3 object_weight,
CONCAT ( '/movies/archive/', u.`id` ) `link`,
CONCAT(
IF (
( (u.`original_name` IS NOT NULL) && (u.`original_name` != '') ),
CONCAT ( u.`name`, ' – ', u.`original_name` ),
u.`name`
),
' (',
IF (
(u.`produced_end` > 0),
CONCAT ( u.`produced_start`, ' – ', u.`produced_end` ),
u.`produced_start`
),
')'
) AS `title`,
CONCAT(
GROUP_CONCAT( t.`name` SEPARATOR ', ' ),
', ',
GROUP_CONCAT( p.`local_name` SEPARATOR ', ' ),
', ',
GROUP_CONCAT( p.`original_name` SEPARATOR ', ' )
) `tags`,
CONCAT ( u.`announce`, ' ', u.`description` ) `text`,
UNIX_TIMESTAMP( u.`updated` ) `pub`,
rr.`sum` `rate`
FROM `video_units` AS u
LEFT JOIN `tags2objects` AS t2o
ON t2o.`object_id` = u.`id`
AND t2o.`object_type_id` = 3
AND t2o.`tag_group_id` IN (2, 8, 6)
LEFT JOIN `tags` AS t
ON t.`tag_id` = t2o.`tag_id`
LEFT JOIN `object2object` AS o2o
ON o2o.`related_object_id` = u.`id`
AND o2o.`relation_type_id` IN (47, 54, 55, 56, 57, 58)
LEFT JOIN `persons` AS p
ON p.`id` = o2o.`object_id`
LEFT JOIN `rating_result` AS rr
ON rr.`object_type` = 3
AND rr.`object_id` = u.`id`
# WHERE (DATE_ADD(u.`updated`, INTERVAL 30 MINUTE) > NOW())
GROUP BY u.`id`
это 1 запрос
Re: Время выполнения запросов SQLite -
Romanius - 18.02.2011
степаха выложи этот идиотизм на говнокод...
Re: Время выполнения запросов SQLite -
Stepashka - 18.02.2011
Quote:
Originally Posted by Romanius
степаха выложи этот идиотизм на говнокод...
|
всмысле, какой код?
Re: Время выполнения запросов SQLite -
azen - 18.02.2011
возможно он имел в виду постбин
Re: Время выполнения запросов SQLite -
Wyu - 18.02.2011
не, он имел ввиду
http://govnokod.ru/
Re: Время выполнения запросов SQLite -
azen - 18.02.2011
ахах, даже на знал о существовании такого сайта) Интересно)
Re: Время выполнения запросов SQLite -
Stepashka - 18.02.2011
Этот скрипт создает таблицу индексов для поисковой системы сфинкс.
А время такое огромне потому что таблицу стыкует на миллион строк два раза.
Так что уважаемый Romanius, если тут где-то и есть говно, то это только ваш пост. И мой вам совет пойдите подучитесь чтобы такой бред больше не писать.
Re: Время выполнения запросов SQLite -
Maccer - 20.02.2011
ай какие выепоны ))
Про скорость sqlite смотрите здесь:
http://www.sqlite.org/speed.html
Re: Время выполнения запросов SQLite -
MX_Master - 21.02.2011
всё-таки скорость зависит от многих факторов, думаю, главные из них - конфиг железа и его свобода от параллельных задач
Re: Время выполнения запросов SQLite -
Romanius - 22.02.2011
я про то что этот запрос никаким боком не подходит к
SQLite.
Re: Время выполнения запросов SQLite -
Stepashka - 22.02.2011
Quote:
Originally Posted by Romanius
я про то что этот запрос никаким боком не подходит к SQLite.
|
т.е ты не читал ппосты до него и увидев запрос тупо ляпнул первое что пришло в голову?
Re: Время выполнения запросов SQLite -
Romanius - 22.02.2011
степаха, это SQL запрос. И он может работать как и под Oracle так и под MySQL, но SQLite под такое не расчитывалось.
Re: Время выполнения запросов SQLite -
Stepashka - 22.02.2011
Quote:
Originally Posted by Romanius
степаха, это SQL запрос. И он может работать как и под Oracle так и под MySQL, но SQLite под такое не расчитывалось.
|
ответь мне на простой вопрос, почему я тут его разместил?
Re: Время выполнения запросов SQLite -
grekon - 09.01.2012
Не хотелось создавать новую тему, решил спросить здесь.
На сервере храню информацию об автомобилях в SQLite. Возникает необходимость периодически (раз в несколько минут) сохранять координаты автомобилей в базу данных.
Формирую по таймеру SQL запросы вида:
UPDATE `VEHICLES` X = -1990.128540, Y = 276.264617, Z = 35.251308, ANGLE = 270.000000 WHERE ID = 0
UPDATE `VEHICLES` SET X = -1990.087280, Y = 272.059844, Z = 34.907825, ANGLE = 270.000000 WHERE ID = 1
И так для всех автомобилей. У меня их несколько сотен => время выполнения в районе секунды. В это время сервер "висит".
Кто может подсказать грамотное решение проблемы? Есть мысль вынести сохранение в отдельный поток, тогда сервер будет во время сохранения отвечать на запросы. Однако волнует вопрос надежности, ведь PAWN не является потокобезопасным языком. Если эта мысль имеет смысл, подскажите какой плагин для многопоточности лучше использовать?
Re: Время выполнения запросов SQLite -
Mutha_X - 09.01.2012
Записывать(обновлять) в БД данные только тех машин, у которых произошли изменения.
Если возможность есть, можно воспользоваться внешней БД( необязательно на другой машине).
Re: Время выполнения запросов SQLite -
Jon_De - 09.01.2012
Quote:
Originally Posted by grekon
Не хотелось создавать новую тему, решил спросить здесь.
На сервере храню информацию об автомобилях в SQLite. Возникает необходимость периодически (раз в несколько минут) сохранять координаты автомобилей в базу данных.
Формирую по таймеру SQL запросы вида:
UPDATE `VEHICLES` X = -1990.128540, Y = 276.264617, Z = 35.251308, ANGLE = 270.000000 WHERE ID = 0
UPDATE `VEHICLES` SET X = -1990.087280, Y = 272.059844, Z = 34.907825, ANGLE = 270.000000 WHERE ID = 1
И так для всех автомобилей. У меня их несколько сотен => время выполнения в районе секунды. В это время сервер "висит".
Кто может подсказать грамотное решение проблемы? Есть мысль вынести сохранение в отдельный поток, тогда сервер будет во время сохранения отвечать на запросы. Однако волнует вопрос надежности, ведь PAWN не является потокобезопасным языком. Если эта мысль имеет смысл, подскажите какой плагин для многопоточности лучше использовать?
|
ID проиндексируй в таблице
Re: Время выполнения запросов SQLite -
Stepashka - 09.01.2012
Quote:
Originally Posted by Jon_De
ID проиндексируй в таблице
|
уникальные ключи всегда имеют индекс.