OK, I have a case like this where I have a one to many and the many can be up to 500,000 items. In that case, I have a one-sided relationship (to-one in the detail items) defined in EOModeler and custom business logic for managing the items in the relationship.

For deleting, I simply use ERXEOAccessUtilities.deleteRowsDescribedByQualifier( .... ); which bypasses EOF and just does SQL delete in one statement.


On Feb 24, 2009, at 10:31 AM, Pascal Robert wrote:

Ok, but that won't fix my performance problem since EOF will issue over 3000 DELETE statements, and fetch over 3000 objects just to delete them, and between the SELECT and the start of the DELETE blocks, it takes 5 minutes... I guess I will have to go 100% pure SQL. FYI, this is for a SOAP service that store contacts and events in Zimbra and I use the DB to store IDs coming from Zimbra and from a Web app. Some users have > 10 000 contacts... It's a very simple schema, so going 100% pure SQL is not a big task.

Just let EOF do the Cascade delete based on your relationship options in EOModeler. In your MySQL InnoDB tables you only need to define your tables, your PKs and possibly add any UNIQUE INDEX constraints where your logic dictates ..... nothing more needed by EOF. No need to define FKs, cascade deletes etc in the db when using MySQL.

On Feb 24, 2009, at 8:27 AM, Pascal Robert wrote:

Hi list,

Can somebody confirm that the MySQL plugin don't care about DELETE CASCADE rules on a FK in MySQL (4.1)? I switched a small db to InnoDB and added FK with the DELETE CASCADE option, but EOF still fetch the parent objects (SELECT * FROM parent), all childs (SELECT * FROM child) and will issue a DELETE statement for each child... which is not efficient at all.


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to