Using SequalPro, it lets me change the table type (in the Table Info tab).
This issues the statement:
ALTER TABLE `EO_PK_TABLE` ENGINE = InnoDB;

Is there any likely downside to this, compared with recreating the schema from 
scratch?

Mark



On 17 May 2013, at 23:26, Kieran Kelleher wrote:

> InnoDB is all or nothing ..... don't waste your time mixing InnoDB and MyISAM 
> in transactions - makes the results even more confusing.
> 
> Convert them all..... evidently, InnoDB is faster nowadays anyway. innoDB can 
> cache everything in memory. MyISAM IIRC only can cache PKs in memory and must 
> always get rows from disk. There is no benefit to staying on MyISAM format.
> 
> 
> On May 17, 2013, at 4:36 PM, Mark Gowdy <[email protected]> wrote:
> 
>> Thanks Paul, it looks like you are correct.
>> 
>> Two 'Kieran Kelleher' email stated:
>> 
>>> There is also no row locking on EO_PK_TABLE with myisam, so you will get 
>>> primary key clashes and subsequent failed inserts if the db is sufficiently 
>>> contended.
>> 
>> 
>> and
>> 
>>> (1) Never use MyISAM - no transactional support means a failed 
>>> editingContext.saveChanges() will not result in a rollback and semi-saved 
>>> changes to the database..... data integrity goes out the window. Use InnoDB 
>>> .... don't just convert live DB though, dump/import to a standby server, 
>>> configure InnoDB first completely and actually do a little bit of studying 
>>> the MySQL docs to understand how. Also, get a head start here: 
>>> https://github.com/kierankelleher/gic-mysql-tools
>>> 
>>> (2) Don't create "real" foreign key constraints because MySQL does not 
>>> support deferred constraints (which is the biggest negative of using 
>>> MySQL). Instead just manually create indexes on every foreign key field. 
>>> Otherwise your performance will deteriorate as tables sizes get larger.
>> 
>> Seems like sound advise.
>> I now have some careful un-picking to do.
>> 
>> Also, incase anyone is interested, I eventually found the primary key 
>> generation code in JDBCPlugIn.class : newPrimaryKeys(int count, EOEntity 
>> entity, JDBCChannel channel)
>> Other DB plugins do their own thing, but the MySQL one appears to fall back 
>> on JDBCPlugIn.
>> 
>> Thanks again, 
>> 
>> Mark
>> 
>> 
>> On 17 May 2013, at 21:18, Paul Yu wrote:
>> 
>>> Well you certainly should not use MyIsam system.  Innodb is the right 
>>> answer.  See Kieran's post on this subject.
>>> 
>>> But I'm not sure that will be the end of your issues.
>>> 
>>> Sent from my iPad
>>> 
>>> On May 17, 2013, at 4:03 PM, Mark Gowdy <[email protected]> wrote:
>>> 
>>>> Hi, 
>>>> 
>>>> We have started getting more of these errors recently, now that the system 
>>>> is under more load.
>>>> 
>>>> ----
>>>> EvaluateExpression failed: 
>>>> <com.webobjects.jdbcadaptor._MySQLPlugIn$MySQLExpression: "INSERT INTO 
>>>> queue_item(ITEM_DATE,  ...  etc....)
>>>> Duplicate entry '4183884' for key 'PRIMARY'
>>>> ----
>>>> 
>>>> I believe the problem is due to the fact that there is more than one 
>>>> instance trying to write to the 'queue_item' table, and the EO_PK_TABLE 
>>>> mechanism is handing out the same ID more than once.
>>>> Probably something to do with locking.
>>>> 
>>>> Our Database is MySQL 5, and the EO_PK_TABLE is of type MyISAM.
>>>> 
>>>> I tried to find the mechanism that allocate the primary key, but I keep 
>>>> bumping up against:
>>>> 
>>>> EOAdaptorChannel:
>>>>   @Deprecated
>>>>   public NSDictionary<String, Object> 
>>>> primaryKeyForNewRowWithEntity(EOEntity entity){
>>>>       return null;
>>>>   }
>>>> 
>>>> 
>>>> Any advise would be appreciated, 
>>>> 
>>>> Thanks, 
>>>> 
>>>> Mark
>>>> 
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list      ([email protected])
>>>> Help/Unsubscribe/Update your Subscription:
>>>> https://lists.apple.com/mailman/options/webobjects-dev/pyu%40mac.com
>>>> 
>>>> This email sent to [email protected]
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com
>> 
>> This email sent to [email protected]
> 

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

This email sent to [email protected]

Reply via email to