There is also sql_safe_updates which (among other things) will cause updates/deletes not using keys to fail. Also, MySQL 5.6 made an attempt at fixing the replication part of this issue (see slave_allow_batching and slave-rows-search-algorithms).
Davi On Wed, Jun 19, 2013 at 2:40 AM, Lixun Peng <[email protected]> wrote: > Hi Sergei, > > You are right, let users add primary key is best. > But I can't let users who don't want to create primary key can't use our > MySQL service. > Amazon RDS also allow users to create the tables without primary key, just > change binlog_format to MIXED to solve replication problem. > > I think this feature is very useful for any MySQL cloud service providers, > all of them will face this problem in one day. > I will try to do some analysis/research in this feature implement first, I > will need your help :-) > > I will notice any new updates in this email. > > > Thanks, > Lixun > > > > > On Wed, Jun 19, 2013 at 5:14 PM, Sergei Golubchik <[email protected]>wrote: > >> Hi, Lixun! >> >> >> On Jun 18, Lixun Peng wrote: >> > Hi, >> > >> > As we know, InnoDB has implicit primary key if a table hasn't defined >> > a primary key. However MySQL server doesn't know this primary key, so >> > this primary key will not apear in binlog. >> > >> > When we are using ROW format binlog for replication, if a table has no >> any >> > indexes, that's a disaster. If a table without indexes do a DML >> > (UPDATE/DELETE), of course it will run a long time in master, but in >> slave, >> > it still need a long time. It will cause serious slave replication >> delay. >> ... >> >> > I think mysql server can do the same thing as InnoDB do, if user doesn't >> > define the primary key, mysql can add the primary key automatically. >> > >> > How do you think? >> >> Well, that's doable. A much easier solution would be to require a user >> to create a primary key. It's a one-line change: >> >> - Table_flags ha_table_flags() const { return cached_table_flags; } >> + Table_flags ha_table_flags() const { return cached_table_flags | >> HA_REQUIRE_PRIMARY_KEY; } >> >> But what you suggest is possible too, I believe. >> >> Regards, >> Sergei >> > > > > -- > Senior Database Engineer @ Taobao.com > > Mobile Phone: +86 18658156856 (Hangzhou) > Gtalk: penglixun(at)gmail.com > Twitter: http://www.twitter.com/plinux > Blog: http://www.penglixun.com > > _______________________________________________ > Mailing list: https://launchpad.net/~maria-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~maria-developers > More help : https://help.launchpad.net/ListHelp > >
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

