> >The thing with Oracle is that once a row is assigned a ROWID, it never > >changes. It doesn't matter if the row grows and has to move within the > >block (or if it has to move to another block, for that matter). That's > >why ROWIDs work in Oracle. > > > > Neither does an auto_increment index value that you put in the table > yourself. I'm still waiting to hear a proponent of _rowid tell me why > _rowid is _better_ for _database_admins_ than using an auto_increment > column value. The '_rowid takes no space' argument is hogwash; its > stored by Oracle in space that MySQL doesn't allocate internally, so its > still taking up a few bytes per row of memory, like it or not.
The ROWID isn't stored by Oracle (except in your indexes). The ROWID is the *physical address* of the row (datafile + block # + offset in the block). It's "stored" in the same space that MySQL would allocate for it's addresses. And I'm not saying that the ROWID is of any value to admins, because it really doesn't make a difference to an admin. It's useful for developers, perhaps. In Oracle, because the ROWID is the actual physical address of the row, it provides O(1) access to a row, as opposed to O(log(n)) that an index provides. That's a pretty good benefit if you ask me. There's also no overhead required when inserting new rows if you're using the ROWID as your key, because there's no maintenance of an index required by the DB. Of course, neither of those things is the case with MySQL's _rowid type, so like I said, the only benefit for MySQL is in migration from Oracle... Oh, one more point, I'm not advocating the use of ROWID in Oracle either. Generally, an index *is* fast enough, and since about Oracle 8i (or maybe it was 9i...), the format of the ROWID changed, because they upped the limit on the number of datafiles, and hence had to increase the size of the ROWID. The old ROWID type is still there, but you just can't use it if you've got more than 1022 datafiles. Dean. --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php