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

  • Автор темы Ruslan82
  • 4218
  • Обновлено
  • 17, Nov 2016
  • #1
Друзья! Инфы в интернете много, но времени на испробовать все категорически нет, поэтому нужна информация из опыта использования различных компонентов в делфи для работы с MySQL.

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

Есть софт который разработали и продаем и стала задача перевести его с Access на более серьезную базу.



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



Платные БД изначально не рассматриваются, но может тот же Firebird или Interbase будет с делфи работать быстрее чем MySQL.

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

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

Ruslan82


Рег
05 Feb, 2011

Тем
2

Постов
22

Баллов
42
  • 08, Oct 2019
  • #2
Поддерживаю про UniDAC.

У меня опыт использования нескольких библиотек.

Много лет работал с SQLDirect с различными СУБД - хорошая библиотека, простой переход с BDE.

Но SQLDirect давно не развивается.

Перешел на UniDAC - поимел несколько приятных моментов при работе с различными СУБД А нет ли у кого сравнения функционала/производительности FireDac и UniDAC? Anyone have a comparison of the functionality/performance of FireDAC and UniDAC?
 

FireWind


Рег
02 Dec, 2005

Тем
112

Постов
179

Баллов
1299
  • 17, Nov 2016
  • #3
Ruslan82, post: 767859:
Друзья!

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

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

Есть софт который разработали и продаем и стала задача перевести его с Access на более серьезную базу.



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



Платные БД изначально не рассматриваются, но может тот же Firebird или Interbase будет с делфи работать быстрее чем MySQL.

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

записей.

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

LeshaRB


Рег
11 Jun, 2007

Тем
5

Постов
110

Баллов
160
  • 17, Nov 2016
  • #4
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров.

в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек.

с базами и структурой базы все нормально.

Я собираюсь использовать UniDAC, но может есть лучше компоненты для работы с MySQL
 

Ruslan82


Рег
05 Feb, 2011

Тем
2

Постов
22

Баллов
42
  • 17, Nov 2016
  • #5
Ruslan82, post: 767861:
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров.

в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек.

с базами и структурой базы все нормально.

Я собираюсь использовать UniDAC, но может есть лучше компоненты для работы с MySQL
Не может быть такого Я когда раньше использовал SQLDirect
 

LeshaRB


Рег
11 Jun, 2007

Тем
5

Постов
110

Баллов
160
  • 17, Nov 2016
  • #6
LeshaRB, post: 767862:
Не может быть такого

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




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



жесть, причем даже если индексные поля не используются в запросе.

и типа кто как рекомендует, кто типа через временную таблицу обновлять, кто индексы удалять
 

Ruslan82


Рег
05 Feb, 2011

Тем
2

Постов
22

Баллов
42
  • 18, Nov 2016
  • #7
но может тот же Firebird или Interbase будет с делфи работать быстрее чем MySQL
По любому. Сам юзаю птичку уже 13 лет. FibPlus (VCL) сейчас тоже бесплатный, деврейс его в народ отдала. Единственное чего не хватает - встроенной репликации. Но, говорят, в 4 версии будет.
 

Mironico


Рег
14 Apr, 2008

Тем
0

Постов
6

Баллов
6
  • 21, Nov 2016
  • #8
LeshaRB, post: 767862:
Не может быть такого

Очень даже может быть, если update делать на всю таблицу... А нужно апдейтить только выделенную запись.
 

algin


Рег
21 Nov, 2016

Тем
0

Постов
6

Баллов
6
  • 22, Nov 2016
  • #9
algin, post: 767866:
Очень даже может быть, если update делать на всю таблицу... А нужно апдейтить только выделенную запись.
I used with SQL Direct
 

cleao


Рег
22 Apr, 2011

Тем
0

Постов
5

Баллов
5
  • 24, Nov 2016
  • #10
Скорость в большей части зависит от написания запроса- правильный запрос может существенно ускорить
 

kinpan


Рег
10 Jan, 2005

Тем
1

Постов
8

Баллов
18
  • 24, Nov 2016
  • #11
Ruslan82, post: 767861:
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров.

в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек.

с базами и структурой базы все нормально.

Я собираюсь использовать UniDAC, но может есть лучше компоненты для работы с MySQL
Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли. Postgres "по скорости" точно не уступает ACCESS )))) Лично я пользуюсь Unidac считаю его оптимальным. Кстати прилагаю книгу по потсгре:
https://mega.nz/#!ysBw3TYK
 

arendaplus


Рег
28 May, 2007

Тем
0

Постов
17

Баллов
17
  • 24, Nov 2016
  • #12
arendaplus, post: 767870:
Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли.

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

Кстати прилагаю книгу по потсгре:

https://mega.nz/#!ysBw3TYK

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

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


Рег
23 Aug, 2012

Тем
1

Постов
24

Баллов
34
  • 26, Nov 2016
  • #13
Я тоже за девартовские компоненты, unidac или mydac. Но я больше по MSSQL спец, там я знаю чем специализированный компонент отличается от unidac. Советую тоже изучить этот вопрос.
 

WildFrag


Рег
22 Dec, 2008

Тем
0

Постов
20

Баллов
20
  • 27, Nov 2016
  • #14
Ruslan82, post: 767863:
да, я тоже начитался перед выбором постгри какая она крутая, а потом гуглил по поводу update - у всех так, все пишут что это нормально, постгре в общем когда делаешь update table set field = 1 where code = 2 - обновляет индексы каждую запись! т.е. если запросом должно обновиться 100 записей то она обновляет индекс 100 раз.



жесть, причем даже если индексные поля не используются в запросе.

и типа кто как рекомендует, кто типа через временную таблицу обновлять, кто индексы удалять
Так может проблема всё-таки не в СУБД, а в индексах, не? Добавлено через 54 секунды Насчёт доступа к MySQL: что MyDAC, что UniDAC - всё едино (если последних версий).
 

reenoip


Рег
08 Jan, 2013

Тем
1

Постов
14

Баллов
24
  • 06, Dec 2016
  • #15
Мы "делали" не маленький проект по телеметрии с БД MS SQL.

Купили UniDAC и как далее оказалось, не прогадали.

В ходе эксплуатации MSSQL "попросил себе" выделенный мощный сервер, но мы ему "отказали" и пришлось СРОЧНО переходить на MySQl.

Просто замечательно, что был куплен именно UniDAC.

Переход занял пару дней (подправили конструкции запросов). В итоге проект до сих пор на MySQl и не думаем менять ни компонент ни БД.
 

test1c


Рег
25 Jul, 2010

Тем
1

Постов
23

Баллов
33
  • 06, Dec 2016
  • #16
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

"
 

j1981


Рег
04 Sep, 2008

Тем
0

Постов
5

Баллов
5
  • 07, Dec 2016
  • #17
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.
 

yyjksw


Рег
17 Jul, 2008

Тем
0

Постов
13

Баллов
13
  • 09, Dec 2016
  • #18
Ну мне лично sqlite вполне так симпатичен для небольших проектов, а если к нему еще и компоненты от devart то вообще супер.
 

WildFrag


Рег
22 Dec, 2008

Тем
0

Постов
20

Баллов
20
  • 12, Dec 2016
  • #19
Ruslan82, post: 767861:
100 000 товаров. в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек.
Быть такого не может. Структура БД видимо сильно разная. Я для мелких задач использую SQL Server Express и ADO.
 

dustypup


Рег
27 Nov, 2008

Тем
0

Постов
8

Баллов
8
  • 14, Dec 2016
  • #20
Mironico, post: 767865:
По любому.
Сам юзаю птичку уже 13 лет.
FibPlus (VCL) сейчас тоже бесплатный, деврейс его в народ отдала.
Единственное чего не хватает - встроенной репликации.
Но, говорят, в 4 версии будет.
Если не затруднит, чуть подробностей про бесплатный FIBPlus. На сайте Devrice он стоит на продаже. Хотя непонятно, что вообще происходит с проектом.
 

er_long76


Рег
11 Nov, 2015

Тем
1

Постов
5

Баллов
15
  • 15, Dec 2016
  • #21
К сожаления на MySQL работал только с маленькими объемами, но для себя выбрал UniDac, потому что они универсальные для разных БД. А я работаю в основном с MS SQL и SQLite. А проблему тормозов решаю либо изменением запросов, либо изменением архитектуры программы (незачем выкачивать слишком много данных)
 

denisofff


Рег
11 Apr, 2009

Тем
0

Постов
14

Баллов
14
  • 15, Dec 2016
  • #22
Если в планах использовать MySQL то лучше сразу использовать MyDAC.
Ruslan82, post: 767861:
индексы есть везде, в Access тоже, 2 аналогичные таблицы в аксес и потсгре, содержат одинаковые индексы и 100 000 товаров.

в аксесе update выполняется 10 сек, в постгре - 10 минут, если удалить индексы - 5 сек.

с базами и структурой базы все нормально.

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

stan_uz


Рег
22 Oct, 2013

Тем
3

Постов
6

Баллов
36
  • 16, Dec 2016
  • #23
с 10 млн строк справится _любая_ база данных. Для доступа еще могу вспомнить Direct Mysql Objects от Cristian Nicola, но эти компоненты уже не развиваются.
 

test-593


Рег
03 Dec, 2014

Тем
1

Постов
3

Баллов
13
  • 19, Dec 2016
  • #24
Не давно тоже стояла задача переделать БД коммерческого проекта под MySql, попробовал использовать стандартные компоненты доступа FireDAC. Вроде нормально работает никто пока не жаловался из клиентов. Со всеми стандартными компонентами (dbGrid, dbEdit и т.д.) работает весьма слажено.
 

oakrom


Рег
02 Aug, 2014

Тем
3

Постов
14

Баллов
44
  • 19, Dec 2016
  • #25
Ruslan82, post: 767859:
Друзья!
нужна информация из опыта использования различных компонентов в делфи для работы с MySQL.

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

dr.Serj


Рег
09 Apr, 2015

Тем
1

Постов
4

Баллов
14
  • 23, Dec 2016
  • #26
Долгое время работал через ADO, несколько лет назад перешел на UniDAC.

Ни в первом, ни во втором случае никаких проблем при работе с MySQL не наблюдалось.

А вообще, многое зависит от распределения бизнес-логики между клиентом и сервером.

Если как можно больше бизнес-логики выносить в хранимые процедуры, триггеры и представления, то интерфейс доступа к базе играет минимальное значение.
 

S_Gur


Рег
26 Feb, 2007

Тем
3

Постов
27

Баллов
57
  • 23, Dec 2016
  • #27
S_Gur, а не проводили эксперимент по скорости записи в базу? Есть ли смысл? Просто у меня в проекте ежесекундно по 800 параметров пишется.
 

Error_999


Рег
25 Dec, 2012

Тем
1

Постов
12

Баллов
22
  • 30, Dec 2016
  • #29
Label1979, post: 767894:
Устойчивая, удобная, бесплатная библиотека ZeosDB. https://sourceforge.net/projects/zeoslib/

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

S_Gur


Рег
26 Feb, 2007

Тем
3

Постов
27

Баллов
57
  • 04, Jan 2017
  • #30
Ещё один голос за ZeosLib. Используем около 10 лет в разнообразных проектах с различными DB (PostgreSQL, MySQL, ...)
 

dimonak90


Рег
14 Jul, 2009

Тем
0

Постов
4

Баллов
4
  • 07, Jan 2017
  • #31
arendaplus, post: 767870:
Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли.

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

Кстати прилагаю книгу по потсгре:

https://mega.nz/#!ysBw3TYK

Thanks for all
 

tsaavedra


Рег
04 Jan, 2016

Тем
0

Постов
2

Баллов
2
  • 07, Feb 2017
  • #33
S_Gur, post: 767890:
Долгое время работал через ADO, несколько лет назад перешел на UniDAC.

Ни в первом, ни во втором случае никаких проблем при работе с MySQL не наблюдалось.

А вообще, многое зависит от распределения бизнес-логики между клиентом и сервером.

Если как можно больше бизнес-логики выносить в хранимые процедуры, триггеры и представления, то интерфейс доступа к базе играет минимальное значение.
полностью поддерживаю, работаю с UniDAC уже несколько лет, проблем никаких, до него перепробовал огромную кучу компонент и ничего не понравилось
 

x3APA3Ax


Рег
22 Oct, 2009

Тем
0

Постов
2

Баллов
2
  • 18, Feb 2017
  • #34
Все зависит от цели. Не надо все грузить на клиента или все тащить на сервер. Где тонко там и рвется. Выигрываем в одном - проигрываем в другом.
 

mr.pm


Рег
12 Feb, 2009

Тем
0

Постов
5

Баллов
5
  • 13, Mar 2017
  • #35
Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли. Postgres "по скорости" точно не уступает ACCESS )))) Лично я пользуюсь Unidac считаю его оптимальным. Кстати прилагаю книгу по потсгре:
https://mega.nz/#!ysBw3TYK
 

ser-klin


Рег
15 Feb, 2017

Тем
0

Постов
8

Баллов
8
  • 25, Mar 2017
  • #38
Месяца два-три назад, когда переходил на Rad Studio Starter, перещупал все библиотеки для работы с базами данных, до которых мог дотянуться. Пришел к выводу, что лучше UniDAC на сегодняшний день ничего нет. Во всяком случае, нет ничего удобнее и безпроблемнее
 

S_Gur


Рег
26 Feb, 2007

Тем
3

Постов
27

Баллов
57
  • 01, Apr 2017
  • #39
Ребят, а под Android есть вариант для работы с MySQL? На Android нет драйвера для MySQL и FireDac там с MySQL не работает.
 

Alitrun


Рег
23 Mar, 2017

Тем
0

Постов
5

Баллов
5
  • 01, Apr 2017
  • #40
Alitrun, post: 767910:
Ребят, а под Android есть вариант для работы с MySQL? На Android нет драйвера для MySQL и FireDac там с MySQL не работает.
А зачем на андроиде БД хранить?
 

LeshaRB


Рег
11 Jun, 2007

Тем
5

Постов
110

Баллов
160
  • 01, Apr 2017
  • #41
LeshaRB, post: 767911:
А зачем на андроиде БД хранить?
Не хранить, а читать с удаленного сервера.
 

Alitrun


Рег
23 Mar, 2017

Тем
0

Постов
5

Баллов
5
  • 12, Apr 2017
  • #43
Alitrun, post: 767910:
Ребят, а под Android есть вариант для работы с MySQL? На Android нет драйвера для MySQL и FireDac там с MySQL не работает.
Насколько помню UniDAC должен работать на iOS и Android, когда то использовал для прамого соединения на iOS ...
 

Stunts


Рег
19 Oct, 2012

Тем
4

Постов
9

Баллов
49
  • 11, May 2017
  • #44
Использоваю UniDac много лет ,работает стабильно , иногда приходилось менять дб и это было легко, советую !
 

Rehim


Рег
08 Dec, 2005

Тем
0

Постов
5

Баллов
5
  • 15, May 2017
  • #45
MyISAM + индексы, в таблице более 500кк записей, компонент - ADOConnection ( хотя без разницы ). Все работает очень шустро, 30-60 мс
 

alexgreat


Рег
14 Apr, 2006

Тем
0

Постов
3

Баллов
3
  • 01, Jun 2017
  • #46
На андройде юзай sqlite. Сможешь принимать данные с сервера и отображать пользователю (т.е. через хранимку, view итд).
 

kefeka


Рег
28 Mar, 2016

Тем
1

Постов
6

Баллов
16
  • 14, Jun 2017
  • #47
Я когда-то на волне популярности пользовал BDE. С тех пор, тянется один проект, который лень переводить, но надо иногда что-нибудь по-мелочи там менять. Теперь вот жду, когда окончательно Embarcodero перестанет BDE поддерживать. Пока они к каждой новой версии ещё предлагают его отдельно ставить.
 

sanekerfort


Рег
03 Jun, 2015

Тем
0

Постов
4

Баллов
4
  • 24, Jun 2017
  • #48
Если ориентироваться на MySQL, то с моей точки зрения MyDAC лучшее решение. В принципе не верю универсальным решениям. Хотя тут скорее скорость будет зависеть больше от архитектуры базы, железа сервера, выбора СУБД, и настройки самой базы. Наверное в такой последовательности
 

fsasha


Рег
29 Apr, 2014

Тем
1

Постов
24

Баллов
34
  • 28, Jul 2017
  • #49
Password please
arendaplus, post: 767870:
Структуру БД в студию где запрос выполнялся 10 мин и да config БД пришли.

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

Кстати прилагаю книгу по потсгре:

https://mega.nz/#!ysBw3TYK

Missing password
 

654321ROD


Рег
22 Aug, 2009

Тем
0

Постов
1

Баллов
1
  • 11, Sep 2017
  • #50
остановились в итоге на Postgre - по ходу разработки каждую неделю удивляемся на сколько это мощь!
 

Ruslan82


Рег
05 Feb, 2011

Тем
2

Постов
22

Баллов
42
Тем
49554
Комментарии
57426
Опыт
552966

Интересно