# Rails 2.1 and mysql's mediumint

**URL:** <https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311>\
**Category:** Rails\
**Created:** [June 12, 2008, 9:09pm UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311 "2008-06-12T21:09:10Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![rasmus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@rasmus](https://www.ruby-forum.com/u/rasmus)\
**Post date:** [June 12, 2008, 9:09pm UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311/1 "2008-06-12T21:09:10Z")

</div>

Hi there,

Browsing the activerecord-2.1.0 source code I found the following:

```
    case limit
    when 0..3
      "smallint(#{limit})"
    when 4..8
      "int(#{limit})"
    when 9..20
      "bigint(#{limit})"
    else
      'int(11)'
    end

```

The mysql adapter of activerecord is now able to use more appropriate  
data types for integers! Finally! That’s awesome!

However, where is the mediumint data type? Numbers with length of 5 and  
6 should be stored as a mediumint in order to obtain optimal performance  
from mysql.

Shouldn’t this be fixed somehow? I’m considering applying a patch myself  
(however, I don’t know how yet), but I thought I’d hear you guys out  
first…

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![rasmus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@rasmus](https://www.ruby-forum.com/u/rasmus)\
**Post date:** [June 16, 2008, 7:40pm UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311/2 "2008-06-16T19:40:48Z")

</div>

Anyone?

Maybe I should post question somewhere else. If you got an idea to where  
it would be wise to post please let me know.

---

<div class="post-metadata">

**Author:** ![rasmus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@rasmus](https://www.ruby-forum.com/u/rasmus)\
**Post date:** [June 16, 2008, 7:56pm UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311/3 "2008-06-16T19:56:11Z")

</div>

Better yet: write a patch. I think you can see what to do 😉

James

On Jun 16, 1:40 pm, Rasmus N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![rasmus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@rasmus](https://www.ruby-forum.com/u/rasmus)\
**Post date:** [June 16, 2008, 7:57pm UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311/4 "2008-06-16T19:57:23Z")

</div>

On 16 Jun 2008, at 18:40, Rasmus N. wrote:

> Anyone?
> 
> Maybe I should post question somewhere else. If you got an idea to  
> where  
> it would be wise to post please let me know.

the rubyonrails-core list or the rails-contrib irc channel are good  
places for questions about the development of rails itself etc…

Fred

---

<div class="post-metadata">

**Author:** ![rasmus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@rasmus](https://www.ruby-forum.com/u/rasmus)\
**Post date:** [June 16, 2008, 9:54pm UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311/5 "2008-06-16T21:54:27Z")

</div>

James H. wrote:

> Better yet: write a patch. I think you can see what to do 😉
> 
> James
> 
> On Jun 16, 1:40ï¿½pm, Rasmus N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> Consider it done! 🙂  
> [#432 mysql adapter with mediumt support - Ruby on Rails - rails](http://rails.lighthouseapp.com/projects/8994/tickets/432-mysql-adapter-with-mediumt-support#ticket-432-1)

This is my first open source contribution ever. Woohoo! I wonder if it  
is any good 🙂

---

<div class="post-metadata">

**Author:** ![rasmus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@rasmus](https://www.ruby-forum.com/u/rasmus)\
**Post date:** [June 17, 2008, 12:04am UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311/6 "2008-06-17T00:04:10Z")

</div>

May I ask as to what the advantage is of using mediumint’s to just  
regular  
ints? Is it disk space or something more sinister?

---

<div class="post-metadata">

**Author:** ![rasmus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@rasmus](https://www.ruby-forum.com/u/rasmus)\
**Post date:** [June 17, 2008, 9:40am UTC](https://www.ruby-forum.com/t/rails-2-1-and-mysqls-mediumint/140311/7 "2008-06-17T09:40:04Z")

</div>

Ryan B. wrote:

> May I ask as to what the advantage is of using mediumint’s to just  
> regular  
> ints? Is it disk space or something more sinister?

Mediumtints requires dramatically less disk space. The main advantage is  
that this allows mysql to hold more rows in memory which boosts  
performance.

Using the right data types is crucial for larger databases…
