Topic: Скорость записи в базу.

Здравствуйте.
Столкнулся с большой проблемой. Со скоростью записи, да и скоростью поиска.
Программа работает с файлом базы данных, расположеным на сервере (sqite)
(Сервер XEON x3220, 8гб) подключаются компьютеры с минимум core i3,2гб)
Компьютеров подключаемых 10.
В базе 10 таблиц.
В двух таблицах в итоге будет по 70.000 строк.
И уже - на 2000 строке столкнулся с проблемой зависания программы, а точнее базы.
При сохранении введенных данных программа на очень долго зависает и повезет если очухается, иначе ctrl+alt+delete.
Скажите как я могу сделать базу быстрой ля записи?
Для поиска?
Что будет когда будет по 70.000 записей?
Базу я Вам скидывал на почту.
От sidhillsaid@gmail.com
Там и вопрос про скрипты с дубликатом и мультиселектом для изображений.
Помогите пожалуйста...

Re: Скорость записи в базу.

Приветствую,


какой текущий размер файла базы данных?



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

begin
    Form1.TableGrid1.dbLimit := 100;
    Form1.TableGrid2.dbLimit := 100;
    Form1.TableGrid3.dbLimit := 100;
end.

если это не решит полностью проблему, тогда рекомендую создать индексы для тех полей, по которым вы производите поиск. Создать индексы для файла базы данных (sqlite.db) можно с помощью  бесплатной программы SQLlite Studio


В целом база данных SQLite хоть и поддерживает многопользовательскую работу, но не создавалась для таких целей, поэтому при ее большом размере могут возникнуть проблемы в скорости, для многопользовательской работы рекомендуется использовать клиент-серверную базу данных MySQL.

Dmitry.

Re: Скорость записи в базу.

Размер файла бд 850 кб.
В ней ~4000 записей.
В каждой записи около десяти изображений (linkfile и copy to -активированы)
Сохраняется запись около 40-50 секунд, при этом вызывая зависание программы, отклика которой может не произойти.
Скажите, Дмитрий.
Уже созданную базу можно перенести на mysql без потерь и как можно быстрее?
Если да, то как?
И какой sql посоветуете постаавить на сервер?

Re: Скорость записи в базу.

Sid.Killsayd
В проекте можно изменить базу с SQLite на MySQL, но данные автоматически не будут перенесены, это необходимо будет сделать обычным способом, экспорт в CSV из SQLite, затем импорт из CSV в MySQL


При переходе на MySQL возможно придеться изменить некоторые SQL запросы написанные вами, т.к. синтаксис SQL запросов этих двух СУБД может быть различен в некоторых случаях.



dbLimit как либо помог?

Dmitry.

Re: Скорость записи в базу.

Сегодня вечером попробую, спасибо за ответ.