MySQL Delphi. Компоненты для работы с MySQL

Ruslan82

Пользователь
Регистрация
05.02.11
Сообщения
22
Реакции
0
Баллы
6
Друзья!

Инфы в интернете много, но времени на испробовать все категорически нет, поэтому нужна информация из опыта использования различных компонентов в делфи для работы с MySQL. Компонентов я видел много, хотелось бы инфа типа "работал с UniDAC поменял на MyDAO и все полетело, или наоборот, или не полетело, скорость не изменилась, но работает стабильнее и возможностей больше.

Есть софт который разработали и продаем и стала задача перевести его с Access на более серьезную базу. Полгода тестили Postgre но она КРАЙНЕ медленная, когда дело заходит про апдейт таблиц с индексами, нужно удалять индексы и делать другие подпорки, может заодно, чтобы не плодить тем, посоветуете и на счет MySQL, чтобы не терять еще полгода, может с ней такие же косяки, хотя плотно работал с нею лет 5 назад и таких проблем не было замечено. Платные БД изначально не рассматриваются, но может тот же Firebird или Interbase будет с делфи работать быстрее чем MySQL. Речь о работе с таблицами, содержащими 1-10 млн. записей.

Спасибо всем заранее!
 

LeshaRB

Пользователь
Регистрация
11.06.07
Сообщения
112
Реакции
0
Баллы
56
Адрес
Минск
Друзья!

Инфы в интернете много, но времени на испробовать все категорически нет, поэтому нужна информация из опыта использования различных компонентов в делфи для работы с MySQL. Компонентов я видел много, хотелось бы инфа типа "работал с UniDAC поменял на MyDAO и все полетело, или наоборот, или не полетело, скорость не изменилась, но работает стабильнее и возможностей больше.

Есть софт который разработали и продаем и стала задача перевести его с Access на более серьезную базу. Полгода тестили Postgre но она КРАЙНЕ медленная, когда дело заходит про апдейт таблиц с индексами, нужно удалять индексы и делать другие подпорки, может заодно, чтобы не плодить тем, посоветуете и на счет MySQL, чтобы не терять еще полгода, может с ней такие же косяки, хотя плотно работал с нею лет 5 назад и таких проблем не было замечено. Платные БД изначально не рассматриваются, но может тот же Firebird или Interbase будет с делфи работать быстрее чем MySQL. Речь о работе с таблицами, содержащими 1-10 млн. записей.

Спасибо всем заранее!
Ты думаешь на уровне MySQL инедксов нет?

Скорее всего в твоем случае компоненты не помогут
У вас неправильно организована структур БД
 

Ruslan82

Пользователь
Регистрация
05.02.11
Сообщения
22
Реакции
0
Баллы
6
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров. в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек. с базами и структурой базы все нормально. Я собираюсь использовать UniDAC, но может есть лучше компоненты для работы с MySQL
 

LeshaRB

Пользователь
Регистрация
11.06.07
Сообщения
112
Реакции
0
Баллы
56
Адрес
Минск
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров. в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек. с базами и структурой базы все нормально. Я собираюсь использовать UniDAC, но может есть лучше компоненты для работы с MySQL
Не может быть такого

Я когда раньше использовал SQLDirect
 

Ruslan82

Пользователь
Регистрация
05.02.11
Сообщения
22
Реакции
0
Баллы
6
Не может быть такого

Я когда раньше использовал SQLDirect

да, я тоже начитался перед выбором постгри какая она крутая, а потом гуглил по поводу update - у всех так, все пишут что это нормально, постгре в общем когда делаешь update table set field = 1 where code = 2 - обновляет индексы каждую запись! т.е. если запросом должно обновиться 100 записей то она обновляет индекс 100 раз... жесть, причем даже если индексные поля не используются в запросе. и типа кто как рекомендует, кто типа через временную таблицу обновлять, кто индексы удалять
 

Mironico

Пользователь
Регистрация
14.04.08
Сообщения
6
Реакции
0
Баллы
2
но может тот же Firebird или Interbase будет с делфи работать быстрее чем MySQL
По любому.
Сам юзаю птичку уже 13 лет.
FibPlus (VCL) сейчас тоже бесплатный, деврейс его в народ отдала.
Единственное чего не хватает - встроенной репликации.
Но, говорят, в 4 версии будет.
 

kinpan

Пользователь
Регистрация
10.01.05
Сообщения
8
Реакции
0
Баллы
2
Возраст
63
Скорость в большей части зависит от написания запроса- правильный запрос может существенно ускорить
 

arendaplus

Пользователь
Регистрация
29.05.07
Сообщения
17
Реакции
0
Баллы
2
Возраст
41
Адрес
Московская область
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров. в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек. с базами и структурой базы все нормально. Я собираюсь использовать UniDAC, но может есть лучше компоненты для работы с MySQL

Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли.

Postgres "по скорости" точно не уступает ACCESS ))))
Лично я пользуюсь Unidac считаю его оптимальным.

Кстати прилагаю книгу по потсгре:
https://mega.nz/#!ysBw3TYK
 

МарковАлександр

Пользователь
Регистрация
23.08.12
Сообщения
25
Реакции
0
Баллы
16
Возраст
47
Адрес
РФ, Москва
Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли.

Postgres "по скорости" точно не уступает ACCESS ))))
Лично я пользуюсь Unidac считаю его оптимальным.

Кстати прилагаю книгу по потсгре:
https://mega.nz/#!ysBw3TYK

Ссылка неполная, просит ключ, без него скачать нельзя.
 
Последнее редактирование модератором:

WildFrag

Пользователь
Регистрация
22.12.08
Сообщения
20
Реакции
0
Баллы
2
Я тоже за девартовские компоненты, unidac или mydac. Но я больше по MSSQL спец, там я знаю чем специализированный компонент отличается от unidac. Советую тоже изучить этот вопрос.
 

reenoip

Пользователь
Регистрация
08.01.13
Сообщения
14
Реакции
0
Баллы
6
да, я тоже начитался перед выбором постгри какая она крутая, а потом гуглил по поводу update - у всех так, все пишут что это нормально, постгре в общем когда делаешь update table set field = 1 where code = 2 - обновляет индексы каждую запись! т.е. если запросом должно обновиться 100 записей то она обновляет индекс 100 раз... жесть, причем даже если индексные поля не используются в запросе. и типа кто как рекомендует, кто типа через временную таблицу обновлять, кто индексы удалять

Так может проблема всё-таки не в СУБД, а в индексах, не?

Добавлено через 54 секунды
Насчёт доступа к MySQL: что MyDAC, что UniDAC - всё едино (если последних версий).
 
Последнее редактирование модератором:

test1c

Пользователь
Регистрация
25.07.10
Сообщения
23
Реакции
0
Баллы
6
Мы "делали" не маленький проект по телеметрии с БД MS SQL.
Купили UniDAC и как далее оказалось, не прогадали.
В ходе эксплуатации MSSQL "попросил себе" выделенный мощный сервер, но мы ему "отказали" и пришлось СРОЧНО переходить на MySQl. Просто замечательно, что был куплен именно UniDAC. Переход занял пару дней (подправили конструкции запросов). В итоге проект до сих пор на MySQl и не думаем менять ни компонент ни БД.
 

j1981

Пользователь
Регистрация
04.09.08
Сообщения
6
Реакции
0
Баллы
6
Возраст
53
Absolute Database
"Description
-----------

With AbsoluteDatabase you can forget the Borland Database Engine (BDE) .
Absolute Database is the compact, high-speed, robust and easy-to-use database engine.
With Absolute Database you will not need special installation and configuration,
it compiles right into your EXE.
Make your application faster and smaller with Absolute Database!

Key Features:

· No BDE; no DLLs
· SQL'92 (DDL & DML) support
· Single database file
· Unmatched ease-of-use
· 100% compatibility with standard DB-aware controls
· Strong encryption
· BLOB compression
· Full source code available
· Royalty-free
"
 

yyjksw

Пользователь
Регистрация
17.07.08
Сообщения
12
Реакции
0
Баллы
6
1. fireBird: There is a strong but inconvenient use. Encryption and more ...
2. NexusDB: Powerful, fast and reliable, but slow for networking. Supported by Unidac.
3. AbsoluteDatabase: Similar to NexusDB, but with a slightly lower overall score.
4. DBISAM: It's easy to write and share, but I'm a bit nervous now.
 

WildFrag

Пользователь
Регистрация
22.12.08
Сообщения
20
Реакции
0
Баллы
2
Ну мне лично sqlite вполне так симпатичен для небольших проектов, а если к нему еще и компоненты от devart то вообще супер.
 

dustypup

Пользователь
Регистрация
27.11.08
Сообщения
9
Реакции
0
Баллы
6
100 000 товаров. в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек.

Быть такого не может. Структура БД видимо сильно разная.

Я для мелких задач использую SQL Server Express и ADO.
 

er_long76

Пользователь
Регистрация
11.11.15
Сообщения
5
Реакции
0
Баллы
2
По любому.
Сам юзаю птичку уже 13 лет.
FibPlus (VCL) сейчас тоже бесплатный, деврейс его в народ отдала.
Единственное чего не хватает - встроенной репликации.
Но, говорят, в 4 версии будет.

Если не затруднит, чуть подробностей про бесплатный FIBPlus. На сайте Devrice он стоит на продаже. Хотя непонятно, что вообще происходит с проектом.
 

denisofff

Пользователь
Регистрация
11.04.09
Сообщения
14
Реакции
0
Баллы
2
К сожаления на MySQL работал только с маленькими объемами, но для себя выбрал UniDac, потому что они универсальные для разных БД. А я работаю в основном с MS SQL и SQLite.
А проблему тормозов решаю либо изменением запросов, либо изменением архитектуры программы (незачем выкачивать слишком много данных)
 

stan_uz

Пользователь
Регистрация
22.10.13
Сообщения
6
Реакции
0
Баллы
6
Если в планах использовать MySQL то лучше сразу использовать MyDAC.

Добавлено через 2 минуты
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров. в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек. с базами и структурой базы все нормально. Я собираюсь использовать UniDAC, но может есть лучше компоненты для работы с MySQL

А в чем именно причина такого поведения? Не ужели обновление индекса занимает столько времени? Есть структура таблицы? А триггеры используются?
 
Последнее редактирование модератором:

test-593

Пользователь
Регистрация
03.12.14
Сообщения
3
Реакции
0
Баллы
2
с 10 млн строк справится _любая_ база данных. Для доступа еще могу вспомнить Direct Mysql Objects от Cristian Nicola, но эти компоненты уже не развиваются.
 

oakrom

Пользователь
Регистрация
02.08.14
Сообщения
14
Реакции
0
Баллы
6
Не давно тоже стояла задача переделать БД коммерческого проекта под MySql, попробовал использовать стандартные компоненты доступа FireDAC. Вроде нормально работает никто пока не жаловался из клиентов. :) Со всеми стандартными компонентами (dbGrid, dbEdit и т.д.) работает весьма слажено.
 

dr.Serj

Пользователь
Регистрация
09.04.15
Сообщения
4
Реакции
0
Баллы
2
Друзья!
нужна информация из опыта использования различных компонентов в делфи для работы с MySQL.

Речь о работе с таблицами, содержащими 1-10 млн. записей.

MyDAC неплохо справляется, но встречались странности, когда примитивный запрос с двумя условиями мог застопориться на несколько минут. Меняем местами условия в запросе - десятые доли секунды. Но это разовые приколы, возможно пофиксили в следующих билдах.
 

S_Gur

Пользователь
Регистрация
26.02.07
Сообщения
27
Реакции
0
Баллы
6
Возраст
56
Адрес
Moscow
Долгое время работал через ADO, несколько лет назад перешел на UniDAC. Ни в первом, ни во втором случае никаких проблем при работе с MySQL не наблюдалось. А вообще, многое зависит от распределения бизнес-логики между клиентом и сервером. Если как можно больше бизнес-логики выносить в хранимые процедуры, триггеры и представления, то интерфейс доступа к базе играет минимальное значение.
 

Error_999

Пользователь
Регистрация
25.12.12
Сообщения
13
Реакции
0
Баллы
6
S_Gur, а не проводили эксперимент по скорости записи в базу? Есть ли смысл? Просто у меня в проекте ежесекундно по 800 параметров пишется.
 

S_Gur

Пользователь
Регистрация
26.02.07
Сообщения
27
Реакции
0
Баллы
6
Возраст
56
Адрес
Moscow
Устойчивая, удобная, бесплатная библиотека ZeosDB. https://sourceforge.net/projects/zeoslib/

ZEOS хорош, но требует от программиста подсовывать DLL для доступа к каждой из поддерживаемых СУБД. Лично мне это показалось неудобным. DEVART-овские компоненты или SQLDirect-овские работают сразу, без лишних телодвижений
 

dimonak90

Пользователь
Регистрация
14.07.09
Сообщения
4
Реакции
0
Баллы
6
Возраст
56
Адрес
Hungary
Ещё один голос за ZeosLib. Используем около 10 лет в разнообразных проектах с различными DB (PostgreSQL, MySQL, ...)
 

tsaavedra

Banned
BANNED
Регистрация
04.01.16
Сообщения
2
Реакции
0
Баллы
1

x3APA3Ax

Пользователь
Регистрация
22.10.09
Сообщения
2
Реакции
0
Баллы
1
Возраст
53
Долгое время работал через ADO, несколько лет назад перешел на UniDAC. Ни в первом, ни во втором случае никаких проблем при работе с MySQL не наблюдалось. А вообще, многое зависит от распределения бизнес-логики между клиентом и сервером. Если как можно больше бизнес-логики выносить в хранимые процедуры, триггеры и представления, то интерфейс доступа к базе играет минимальное значение.

полностью поддерживаю, работаю с UniDAC уже несколько лет, проблем никаких, до него перепробовал огромную кучу компонент и ничего не понравилось
 

mr.pm

Пользователь
Регистрация
12.02.09
Сообщения
5
Реакции
0
Баллы
1
Все зависит от цели. Не надо все грузить на клиента или все тащить на сервер. Где тонко там и рвется. Выигрываем в одном - проигрываем в другом.
 

ser-klin

Banned
BANNED
Регистрация
15.02.17
Сообщения
8
Реакции
0
Баллы
1
Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли.

Postgres "по скорости" точно не уступает ACCESS ))))
Лично я пользуюсь Unidac считаю его оптимальным.

Кстати прилагаю книгу по потсгре:
https://mega.nz/#!ysBw3TYK
 

S_Gur

Пользователь
Регистрация
26.02.07
Сообщения
27
Реакции
0
Баллы
6
Возраст
56
Адрес
Moscow
Месяца два-три назад, когда переходил на Rad Studio Starter, перещупал все библиотеки для работы с базами данных, до которых мог дотянуться. Пришел к выводу, что лучше UniDAC на сегодняшний день ничего нет. Во всяком случае, нет ничего удобнее и безпроблемнее
 

Alitrun

Пользователь
Регистрация
23.03.17
Сообщения
5
Реакции
0
Баллы
2
Ребят, а под Android есть вариант для работы с MySQL? На Android нет драйвера для MySQL и FireDac там с MySQL не работает.
 

Stunts

Пользователь
Регистрация
19.10.12
Сообщения
9
Реакции
0
Баллы
6
Ребят, а под Android есть вариант для работы с MySQL? На Android нет драйвера для MySQL и FireDac там с MySQL не работает.
Насколько помню UniDAC должен работать на iOS и Android, когда то использовал для прамого соединения на iOS ...
 

Rehim

Пользователь
Регистрация
08.12.05
Сообщения
5
Реакции
0
Баллы
6
Адрес
XXX
Использоваю UniDac много лет ,работает стабильно , иногда приходилось менять дб и это было легко, советую !
 

alexgreat

Пользователь
Регистрация
14.04.06
Сообщения
3
Реакции
0
Баллы
1
Возраст
43
Адрес
Spb
MyISAM + индексы, в таблице более 500кк записей, компонент - ADOConnection ( хотя без разницы ). Все работает очень шустро, 30-60 мс
 

kefeka

Пользователь
Регистрация
28.03.16
Сообщения
6
Реакции
0
Баллы
2
На андройде юзай sqlite. Сможешь принимать данные с сервера и отображать пользователю (т.е. через хранимку, view итд).
 

sanekerfort

Пользователь
Регистрация
03.06.15
Сообщения
4
Реакции
0
Баллы
1
Я когда-то на волне популярности пользовал BDE. С тех пор, тянется один проект, который лень переводить, но надо иногда что-нибудь по-мелочи там менять. Теперь вот жду, когда окончательно Embarcodero перестанет BDE поддерживать. :D Пока они к каждой новой версии ещё предлагают его отдельно ставить.
 

fsasha

Banned
BANNED
Регистрация
29.04.14
Сообщения
24
Реакции
0
Баллы
6
Адрес
Минск
Если ориентироваться на MySQL, то с моей точки зрения MyDAC лучшее решение. В принципе не верю универсальным решениям. Хотя тут скорее скорость будет зависеть больше от архитектуры базы, железа сервера, выбора СУБД, и настройки самой базы. Наверное в такой последовательности :)
 

654321ROD

Пользователь
Регистрация
22.08.09
Сообщения
1
Реакции
0
Баллы
1

Ruslan82

Пользователь
Регистрация
05.02.11
Сообщения
22
Реакции
0
Баллы
6
остановились в итоге на Postgre - по ходу разработки каждую неделю удивляемся на сколько это мощь!
 

FireWind

Пользователь
Регистрация
02.12.05
Сообщения
180
Реакции
0
Баллы
56
Адрес
Minsk
Поддерживаю про UniDAC. У меня опыт использования нескольких библиотек. Много лет работал с SQLDirect с различными СУБД - хорошая библиотека, простой переход с BDE. Но SQLDirect давно не развивается. Перешел на UniDAC - поимел несколько приятных моментов при работе с различными СУБД

А нет ли у кого сравнения функционала/производительности FireDac и UniDAC?

Anyone have a comparison of the functionality/performance of FireDAC and UniDAC?
 

Статистика форума

Темы
200.447
Сообщения
380.283
Пользователи
327.898
Новый пользователь
EliRus
Сверху Снизу