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

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

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

Не пробовали MySQL не на десктопе запускать?
...
Рейтинг: 0 / 0
Помогите выбрать СУБД
    #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
Помогите выбрать СУБД
    #33439191
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redstar
Сами запросы - ничего умного.

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

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

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

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

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

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


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

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

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

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

Вот сразу-бы так и не было бы никаких "Звездных войн"
...
Рейтинг: 0 / 0
Помогите выбрать СУБД
    #33440491
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redstar
Знаете, я бы сказал, что под данную конкретную задачу лучше обойтись вообще без СУБД. В любом случае, похоже, Вам стоит смотреть в сторону In-memory СУБД - например TimesTen http://www.oracle.com/timesten/index.html
...
Рейтинг: 0 / 0
Помогите выбрать СУБД
    #33442210
redstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, cпасибо за помощь, не знал что СУБД плохо с апдейтами дружат.
ANT долго думает после регистрации, наверное его смутил телефон «007».
FoxPro оставляет некий налет студенчества, но обязательно попробую.
Написал несложный тест для TimesTen и MySql: 45000 инсертов и столько же апдейтов. Вот результат выполнения в сек:
Timesten 88
MyISAM 12
MyMemory 11
Конечно такой тест не является показательным но разница в 8 раз…
По всему выходит что мускл здесь самый быстрый для данной задачи?
gardenman, а в mysql размер страницы регулируется?
...
Рейтинг: 0 / 0
Помогите выбрать СУБД
    #33442432
redstart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A ты пробовал рабоать с DB2/Informix/MSSQL/Sybase/Oracle??? Опять же что у тебя за железо???
...
Рейтинг: 0 / 0
Помогите выбрать СУБД
    #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
Помогите выбрать СУБД
    #33447530
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redstarНазначение СУБД: быстрая память для приложения
Работа: 10 SQL запросов выполняются в непрерывном цикле
Требования к СУБД: требование одно - быстродействие, быстродействие и еще раз быстродействие

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


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

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

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

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

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

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

А нужна ли тогда СУБД вообще? Нельзя ли обойтись просто многомерными массивами? Ну да, SQL-удобная штука, но затраты ресурсов на его оптимизацию/компилляцию могут себя не оправдывать, даже если используется не отдельное приложение, а что-нибудь наподобие библиотеки SQLite. Или действительно стоит использовать FoxPro, но это довольно специализированный язык, многое в нём реализовывать непривычно/неудобно...
...
Рейтинг: 0 / 0
Помогите выбрать СУБД
    #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]