Nevermind, I've found the bug:

http://bugs.mysql.com/bug.php?id=57643

I'm gonna subscribe for it and see if it's gonna be resolved.

Many thanks guys for all your assistance!

2013/3/13 spameden <spame...@gmail.com>:
> 2013/3/13 Rick James <rja...@yahoo-inc.com>:
>> AUTO_INCREMENT guarantees that it will not assign the same number twice.  
>> That's about all it is willing to guarantee.
>>
>> With InnoDB, if a transaction starts, uses an auto_inc value, then rolls 
>> back, that id is lost.
>
> True, but if you do not specify START TRANSACTION I believe it's done
> automatically? Nothing rolled back for me for that table and noone has
> been using it except me.
>
>>
>> When you have multiple threads loading data into the same table, diff values 
>> of innodb_autoinc_lock_mode give you diff tradeoff between speed and 
>> predictability.  If replication is involved, you want predictability.
>
> No, I do not have multiple threads, only 1.
>
>>
>> InnoDB and MyISAM act differently, especially after recovering from a crash.
>
> I understand the difference between InnoDB and MyISAM. InnoDB is a
> transactional DB engine with single row-level locking.
>
>>
>> If you DELETE the _highest_ id, then restart the server, that id will be 
>> reused.  (This is irritating to some people.)  Otherwise, a deleted id will 
>> not be reused.
>
> I didn't DELETE anything! The only actions I did:
>
> 1. Created the TABLE
> 2. used LOAD FILE only via command line (1 thread)
>
> So is it normal or should I fill a bug?
>>
>> There may be more.  Most of those are covered here:
>>     http://mysql.rjweb.org/doc.php/ricksrots
>>
>>
>>
>>
>>> -----Original Message-----
>>> From: spameden [mailto:spame...@gmail.com]
>>> Sent: Tuesday, March 12, 2013 2:46 PM
>>> To: Rick James
>>> Cc: mysql@lists.mysql.com
>>> Subject: Re: auto_increment field behavior
>>>
>>> 2013/3/13 Rick James <rja...@yahoo-inc.com>:
>>> > What settings?  (innodb_autoinc_lock_mode comes to mind, but there
>>> may
>>> > be others.)
>>> Hi, Rick.
>>>
>>> Many thanks for the quick answer here is my settings:
>>>
>>> mysql> show variables like '%inc%';
>>> +-----------------------------+-------+
>>> | Variable_name               | Value |
>>> +-----------------------------+-------+
>>> | auto_increment_increment    | 1     |
>>> | auto_increment_offset       | 1     |
>>> | div_precision_increment     | 4     |
>>> | innodb_autoextend_increment | 8     |
>>> | innodb_autoinc_lock_mode    | 1     |
>>> +-----------------------------+-------+
>>> 5 rows in set (0.00 sec)
>>>
>>>
>>> >
>>> > It is acceptable, by the definition of AUTO_INCREMENT, for it to burn
>>> the missing 15K ids.
>>>
>>> I don't get this explanation, could you please explain bit more? So
>>> it's completely normal for AUTO_INCREMENT field to act like this?
>>>
>>>
>>> >
>>> >> -----Original Message-----
>>> >> From: spameden [mailto:spame...@gmail.com]
>>> >> Sent: Tuesday, March 12, 2013 2:34 PM
>>> >> To: mysql@lists.mysql.com
>>> >> Subject: auto_increment field behavior
>>> >>
>>> >> Hi, I'm running MySQL-5.5 on Ubuntu
>>> >>
>>> >> ~ $ mysqld -V
>>> >> mysqld  Ver 5.5.29-0ubuntu0.12.04.2 for debian-linux-gnu on x86_64
>>> >> ((Ubuntu))
>>> >>
>>> >> Would like to know if it's normal behavior with auto_increment field
>>> >> (tried both signed and unsigned now):
>>> >>
>>> >> mysql> show create table phone_codes;
>>> >> +-------------+-----------------------------------------------------
>>> -
>>> >> +-------------+--
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --+
>>> >> | Table       | Create Table
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>   |
>>> >> +-------------+-----------------------------------------------------
>>> -
>>> >> +-------------+--
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --+
>>> >> | phone_codes | CREATE TABLE `phone_codes` (
>>> >>   `pc_id` int(11) NOT NULL AUTO_INCREMENT,
>>> >>   `pc_type` enum('ABC','DEF') DEFAULT NULL,
>>> >>   `pc_code` decimal(3,0) NOT NULL,
>>> >>   `pc_from` decimal(7,0) NOT NULL,
>>> >>   `pc_to` decimal(7,0) NOT NULL,
>>> >>   `pc_capacity` decimal(8,0) NOT NULL,
>>> >>   `pc_operator` varchar(255) DEFAULT NULL,
>>> >>   `pc_city` varchar(255) DEFAULT NULL,
>>> >>   `pc_region` varchar(255) DEFAULT NULL,
>>> >>   PRIMARY KEY (`pc_id`),
>>> >>   KEY `pc_code` (`pc_code`),
>>> >>   KEY `pc_code_from_to` (`pc_code`,`pc_from`,`pc_to`),
>>> >>   KEY `pc_operator` (`pc_operator`),
>>> >>   KEY `pc_city` (`pc_city`),
>>> >>   KEY `pc_region` (`pc_region`)
>>> >> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
>>> >> +-------------+-----------------------------------------------------
>>> -
>>> >> +-------------+--
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --+
>>> >> 1 row in set (0.00 sec)
>>> >>
>>> >> mysql> load data infile '/tmp/ABC3x' into table phone_codes fields
>>> >> terminated by ';' enclosed by '#' lines terminated by '\r\n'
>>> >> (pc_code,pc_from,pc_to,pc_capacity,pc_operator,pc_city,pc_region)
>>> SET
>>> >> pc_type='ABC'; Query OK, 17922 rows affected (4.44 sec)
>>> >> Records: 17922  Deleted: 0  Skipped: 0  Warnings: 0
>>> >>
>>> >> mysql> show create table phone_codes;
>>> >> +-------------+-----------------------------------------------------
>>> -
>>> >> +-------------+--
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> -----------------------+
>>> >> | Table       | Create Table
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>                        |
>>> >> +-------------+-----------------------------------------------------
>>> -
>>> >> +-------------+--
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> -----------------------+
>>> >> | phone_codes | CREATE TABLE `phone_codes` (
>>> >>   `pc_id` int(11) NOT NULL AUTO_INCREMENT,
>>> >>   `pc_type` enum('ABC','DEF') DEFAULT NULL,
>>> >>   `pc_code` decimal(3,0) NOT NULL,
>>> >>   `pc_from` decimal(7,0) NOT NULL,
>>> >>   `pc_to` decimal(7,0) NOT NULL,
>>> >>   `pc_capacity` decimal(8,0) NOT NULL,
>>> >>   `pc_operator` varchar(255) DEFAULT NULL,
>>> >>   `pc_city` varchar(255) DEFAULT NULL,
>>> >>   `pc_region` varchar(255) DEFAULT NULL,
>>> >>   PRIMARY KEY (`pc_id`),
>>> >>   KEY `pc_code` (`pc_code`),
>>> >>   KEY `pc_code_from_to` (`pc_code`,`pc_from`,`pc_to`),
>>> >>   KEY `pc_operator` (`pc_operator`),
>>> >>   KEY `pc_city` (`pc_city`),
>>> >>   KEY `pc_region` (`pc_region`)
>>> >> ) ENGINE=InnoDB AUTO_INCREMENT=32768 DEFAULT CHARSET=utf8 |
>>> >> +-------------+-----------------------------------------------------
>>> -
>>> >> +-------------+--
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> --------------------------------------------------------------------
>>> -
>>> >> --
>>> >> -----------------------+
>>> >> 1 row in set (0.00 sec)
>>> >>
>>> >> NOTE: AUTO_INCREMENT is 32768 instead of 17923 ! So next inserted
>>> row
>>> >> would have pc_id=32768.
>>> >>
>>> >> Please suggest if it's normal behavior or not.
>>> >>
>>> >> Many thanks.
>>> >>
>>> >> --
>>> >> MySQL General Mailing List
>>> >> For list archives: http://lists.mysql.com/mysql
>>> >> To unsubscribe:    http://lists.mysql.com/mysql
>>> >

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql

Reply via email to