Архив

Публикации с меткой ‘DB’

MySQL: Как проверить целостность внешних ключей в InnoDB.

Для ускорения вставки большого объёма данных в InnoDB одна из рекомендаций - отключить проверку целостности ключей. Более того, это ещё позволит и решить проблему с порядком вставки этих данных: если ваша сущность имеет ссылку на какую-либо другую сущность, которая ещё не была создана, то вы имеете все шансы словить ошибку foerign-key constraint'ов, выглядит это примерно так:

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`foreign_key_0022`.`table`, CONSTRAINT `item_id` FOREIGN KEY (`item_id`) REFERENCES `child_table` (`item_id`))

Читать далее...

Linux: Как ускорить вставку большого объёма данных в sqlite3?

К сожалению, мой первый и, пока, единственный SSD-диск сдох около месяца назад, а вот возможность где бы он мог проявить всю свою мощь появилась буквально только что. Мне предстояло импортировать достаточно большой объём JSON-данных в БД на sqlite3 через Django, а именно - надо было перенести около 150MB в эту БД (для sqlite3 это достаточно много, на мой взгляд). Код импорта я писал сам, поэтому его ещё предстояло отладить, писать тесты почти бесполезно, т.к. исходные данные были не идеальные и не всегда консистентные, ошибки исходных данных находились и обрабатывались индивидуально. Читать далее...

MySQL: создаём БД в правильной кодировке.

17 марта 2013 2 комментария

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

Hibernate: Удаление объектов из БД.

10 февраля 2010 Нет комментариев

По работе пришлось изучать работу Java’вского ORM’а, пока что знаком только бегло, но некоторые полезные штуки для новичка решил записать. Может кому пригодится, может нет, но хотя бы самому гуглить придётся меньше. Кстати, примеры будут не на Java, а на Jython’е, т.к. с первым я тоже не очень знаком.

Итак, опустим настройку и подключение Hibernate, предположим, что вы это уже сделали. Быть может, напишу об этом позже. Требуется удалить из таблицы player (которая маппится с классом Player, естественно… или наоборот) некоторые записи. Если мы знаем id игрока, тогда всё элементарно (как и в других случаях):

player = session.load(Player, player_id)
session.delete(player)

Теперь рассмотрим случай, когда надо удалить много записей. Читать далее...