Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Помогите выбрать СУБД / 25 сообщений из 28, страница 1 из 2
15.12.2005, 17:56
    #33439015
redstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Назначение СУБД: быстрая память для приложения
Работа: 10 SQL запросов выполняются в непрерывном цикле
Требования к СУБД: требование одно - быстродействие, быстродействие и еще раз быстродействие

Ограничения:
1. Приложение выполняется на машине с СУБД - локальная
2. Однопользовательская
3. Малый размер строки
4. Небольшое (5) количество таблиц
5. Без транзакций

На мускуле (v4,v5 MyISAM), при достижении 100 000 строк скорость падает на порядок по сравнению со стартовой (со 100 итераций в секунду до 10).
...
Рейтинг: 0 / 0
15.12.2005, 18:01
    #33439033
Ц4
Ц4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
а пример запроса можно глянуть?
...
Рейтинг: 0 / 0
15.12.2005, 18:03
    #33439041
Dogen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
redstar
На мускуле (v4,v5 MyISAM), при достижении 100 000 строк скорость падает на порядок по сравнению со стартовой (со 100 итераций в секунду до 10).
Индексы?..
Размер строки в таблице (размер самой таблицы)?..
...
Рейтинг: 0 / 0
15.12.2005, 18:05
    #33439048
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
> при достижении 100 000 строк скорость падает на порядок по сравнению со
> стартовой (со 100 итераций в секунду до 10).

Не пробовали MySQL не на десктопе запускать?
...
Рейтинг: 0 / 0
15.12.2005, 18:28
    #33439128
redstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Размер строки 30-60b (байт!)
Индексы на все что есть в where и нечасто апдетится. По логам: кэшированных запросов нет, запросов неиндексированных данных нет.
Сами запросы - ничего умного.

Пример запросов - лог одного такта:
update refren set s0=GREATEST(s0,1.0) where id=1080
select r.id, r.id_prev from rel r where r.type=0 and r.id_prev=435132 and r.id_src=1088 and r.id_dict=1080 order by w desc limit 1
update rel set w=GREATEST(0.5,POW(w, 0.8)), f1=1 where id=453746
select w from rel where id=453746
select id_dict from rel where type=1 and id_prev=435132 and id_src=1088
update rel set w=GREATEST(0.5,POW(w, 0.8)) where type=1 and id_prev=435132 and id_src=1088
update refren set s1=GREATEST(s1,1.0) where id=355402
select sum(s0) from refren where s0>0.1 and lev=2
update refren f, refren f1, coord c set f.s0=f.s0+f1.s0*c.w*1.0 where f1.lev=2 and f1.id=c.id_coord and f.id=c.id_ref and f1.s0*c.w>0.1
select * from refren where lev>0 and s1>0.1 and s1>=s0 order by s1 desc limit 1
insert into internal(ref,s0)values(355402,1.0)
select lev from refren where id=355402
update refren set s0=s0*2.0,k=k+(1.9-k)*0.1 where id=355402
update refren set s1=GREATEST(s1,s0*0.7),s0=0 where s0>0.1
update internal set s1=GREATEST(s1,s0*0.7),s0=0 where s0>0.1

Падение быстродействия в 10 раз когда база выходит на объем<10 Мб - нормальное явление в мире СУБД? (или в мире mysql)
...
Рейтинг: 0 / 0
15.12.2005, 18:50
    #33439191
Dogen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
redstar
Сами запросы - ничего умного.

Сотни апдейтов подряд - реально ничего умного.
...
Рейтинг: 0 / 0
15.12.2005, 19:04
    #33439218
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Если много инсертов и апдейтов - значит нужна СУБД которая может статистику собирать в REALTIME, таких много.
Очень важен дизайн дисковой подсистемы. Лог - обязательно на другой диск - не там где данные, и по возможности даже на RAID0.
Неплохо было бы разложить индексы/данные по разным областям памяти (чтобы небыло вымывания страниц).
Посмотреть сколько памяти отведено под сортировку.Возможно нужно увеличить.
Страницы базы сделать как можно меньше. т.е. хотябы 4K и ни в коем случае не больше.
Рассмотрите возможность сократить количество индексов.
Легче править три-четыре составных индекса чем колбасить десять простых.
(I/O всяко меньше будет)

Скорее хватает пропускной способности I/O - это ваша болезнь. Решение - перепроектирование.
...
Рейтинг: 0 / 0
15.12.2005, 22:07
    #33439426
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
ANTs, TopTen. Первый просто летает, если все данные вмещаются в память.

В таком вот аксепте
...
Рейтинг: 0 / 0
16.12.2005, 10:34
    #33439915
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
redstarПадение быстродействия в 10 раз когда база выходит на объем<10 Мб - нормальное явление в мире СУБД? (или в мире mysql)
Нет, это только для СУБД начального класса...

Попробуйте MS Visual FoxPro 8.0 - разницу увидите сразу, только не забудьте проиндексировать поля, которые участвуют в выражении WHERE...

До 2Gb все просто должно "летать".... После - надо использовать некторые хитрости Но будет тоже очень быстро...

Good luck!
...
Рейтинг: 0 / 0
16.12.2005, 10:40
    #33439937
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Sergey ChНет, это только для СУБД начального класса...


Это шо за СУБД такие ? Давно они в школу пошли ???
FoxPro то точно пятиклассник-третьегодник
...
Рейтинг: 0 / 0
16.12.2005, 10:52
    #33439984
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Gluk (Kazan) Это шо за СУБД такие ? Давно они в школу пошли ???
FoxPro то точно пятиклассник-третьегодник
Звездные войны в другом топике

А здесь ответы на вопросы автора и методологическая помощь...

P.S. Ну а FoxPro очень быстро работает на вставку новых данных, особенно при условиях описанных автором. Если не верите, то можете провести эксперимент... Good luck!
...
Рейтинг: 0 / 0
16.12.2005, 11:05
    #33440028
Dogen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Sergey Ch
P.S. Ну а FoxPro очень быстро работает на вставку новых данных, особенно при условиях описанных автором. Если не верите, то можете провести эксперимент... Good luck!
Автор апдейтит данные, не путайте мухи с котлетами. Ни одна OLTP (или похожая система) не работает с апдейтом данных, только вставка новых и изредка апдейт старых данных. Из-за скорости в том числе.
...
Рейтинг: 0 / 0
16.12.2005, 12:34
    #33440428
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Dogen Автор апдейтит данные, не путайте мухи с котлетами. Ни одна OLTP (или похожая система) не работает с апдейтом данных, только вставка новых и изредка апдейт старых данных. Из-за скорости в том числе.
Вот я и написал о том, что FoxPro идеально подойдет для задачи спрашивающего быстро вставить много данных...

P.S. Приношу извиненеия, если кто-то что-то понял неправильно. Данное мое мнение является сугубо личным, основанном на большом опыте разработки программ по желанию заказчика и естественно не является абсолютной истиной. Просто каждое мнение имеет право на жизнь...
...
Рейтинг: 0 / 0
16.12.2005, 12:40
    #33440462
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Sergey ChP.S. Приношу извиненеия, если кто-то что-то понял неправильно. Данное мое мнение является сугубо личным, основанном на большом опыте разработки программ по желанию заказчика и естественно не является абсолютной истиной. Просто каждое мнение имеет право на жизнь...

Вот сразу-бы так и не было бы никаких "Звездных войн"
...
Рейтинг: 0 / 0
16.12.2005, 12:46
    #33440491
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
redstar
Знаете, я бы сказал, что под данную конкретную задачу лучше обойтись вообще без СУБД. В любом случае, похоже, Вам стоит смотреть в сторону In-memory СУБД - например TimesTen http://www.oracle.com/timesten/index.html
...
Рейтинг: 0 / 0
17.12.2005, 10:29
    #33442210
redstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Коллеги, cпасибо за помощь, не знал что СУБД плохо с апдейтами дружат.
ANT долго думает после регистрации, наверное его смутил телефон «007».
FoxPro оставляет некий налет студенчества, но обязательно попробую.
Написал несложный тест для TimesTen и MySql: 45000 инсертов и столько же апдейтов. Вот результат выполнения в сек:
Timesten 88
MyISAM 12
MyMemory 11
Конечно такой тест не является показательным но разница в 8 раз…
По всему выходит что мускл здесь самый быстрый для данной задачи?
gardenman, а в mysql размер страницы регулируется?
...
Рейтинг: 0 / 0
17.12.2005, 16:42
    #33442432
redstart
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
A ты пробовал рабоать с DB2/Informix/MSSQL/Sybase/Oracle??? Опять же что у тебя за железо???
...
Рейтинг: 0 / 0
18.12.2005, 16:21
    #33442908
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Проверил на "студенческом" FoxPro вставку в 2 таблицы 500,000 записей - 18 sec, объем полученных данных всего 24Mb:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
CLOSE DATABASES all
OPEN DATABASE ('TEST.DBC') EXCLUSIVE
PACK DATABASE
SET SAFETY OFF 


IF FILE('REL.DBF')
  DROP TABLE REL
ENDIF
IF FILE('REFEREN.DBF')
  DROP TABLE REFEREN
ENDIF


CREATE TABLE rel ( id i autoinc PRIMARY KEY , id_prev i,id_src i,id_dict i, w n( 5 , 3 ))
SELECT rel
INDEX ON id_src TAG id_src ADDITIVE
INDEX ON id_dict TAG id_dict ADDITIVE
INDEX ON id_dict TAG id_dict ADDITIVE


CREATE TABLE referen (lev i, s0 n( 5 , 3 ))


m.ltbegin=DATETIME()
FOR i= 1  TO  500000 
  insert into rel (id_prev,id_src,id_dict, w) values (int(RAND()* 1000 ),int(RAND()* 1000 ),int(RAND()* 1000 ),round(RAND()* 100 , 2 ))
  INSERT INTO referen (lev, s0) VALUES (rel.id, round(RAND()* 100 , 2 ))
ENDFOR 

? 'Time, sec: ',DATETIME() - m.ltbegin
CLOSE DATABASES 
...
Рейтинг: 0 / 0
20.12.2005, 18:21
    #33447530
shuklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
redstarНазначение СУБД: быстрая память для приложения
Работа: 10 SQL запросов выполняются в непрерывном цикле
Требования к СУБД: требование одно - быстродействие, быстродействие и еще раз быстродействие

Ограничения:
1. Приложение выполняется на машине с СУБД - локальная
2. Однопользовательская
3. Малый размер строки
4. Небольшое (5) количество таблиц
5. Без транзакций


Есть у меня знакомый redstar, Ром, ежель это ты и тебя опять на нейронки потянуло - бросай SQLи и переходи на нормальные ОБД )))
...
Рейтинг: 0 / 0
20.12.2005, 19:18
    #33447658
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Dogen Sergey Ch
P.S. Ну а FoxPro очень быстро работает на вставку новых данных, особенно при условиях описанных автором. Если не верите, то можете провести эксперимент... Good luck!
Автор апдейтит данные, не путайте мухи с котлетами. Ни одна OLTP (или похожая система) не работает с апдейтом данных, только вставка новых и изредка апдейт старых данных. Из-за скорости в том числе.

Кто вам такую глупость сказал ?
...
Рейтинг: 0 / 0
21.12.2005, 11:51
    #33448743
Dogen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Выбегалло Dogen Sergey Ch
P.S. Ну а FoxPro очень быстро работает на вставку новых данных, особенно при условиях описанных автором. Если не верите, то можете провести эксперимент... Good luck!
Автор апдейтит данные, не путайте мухи с котлетами. Ни одна OLTP (или похожая система) не работает с апдейтом данных, только вставка новых и изредка апдейт старых данных. Из-за скорости в том числе.

Кто вам такую глупость сказал ?
Своим умом дошел. Кроме Вас, никто почему-то не возражает
...
Рейтинг: 0 / 0
21.12.2005, 11:53
    #33448759
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Я возражаю.
...
Рейтинг: 0 / 0
21.12.2005, 12:09
    #33448844
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
Привет, Dogen!
Ты пишешь:

Dogen ВыбегаллоКто вам такую глупость сказал ?
D> Своим умом дошел. Кроме Вас, никто почему-то не возражает
На каждый твой перл реагировать, нафик надо.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
21.12.2005, 12:52
    #33449010
AlexTheRaven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
redstarОграничения:
1. Приложение выполняется на машине с СУБД - локальная
2. Однопользовательская
3. Малый размер строки
4. Небольшое (5) количество таблиц
5. Без транзакций

А нужна ли тогда СУБД вообще? Нельзя ли обойтись просто многомерными массивами? Ну да, SQL-удобная штука, но затраты ресурсов на его оптимизацию/компилляцию могут себя не оправдывать, даже если используется не отдельное приложение, а что-нибудь наподобие библиотеки SQLite. Или действительно стоит использовать FoxPro, но это довольно специализированный язык, многое в нём реализовывать непривычно/неудобно...
...
Рейтинг: 0 / 0
21.12.2005, 13:28
    #33449175
redstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите выбрать СУБД
shuklinЕсть у меня знакомый redstar, Ром, ежель это ты и тебя опять на нейронки потянуло - бросай SQLи и переходи на нормальные ОБД )))
Привет, Дим. Пробовал кашу, отказался опять же из-за скорости: в рамках описанных ограничений проигрывал на порядок.

2AlexTheRaven
Можно взять массив, построить хэш таблицу и т.д. - получим in-memory table
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Помогите выбрать СУБД / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]