Rails喜欢使用自动增量32位整数作为表上的主键。当人们接近表格中32位整数行的限制时,他们做了什么?Rails Very Large表
1
A
回答
3
您可以将密钥更改为bigint?这是一个8字节(64位)整数。它可以提供高达9的量化,而不是40亿。没有一个本地迁移虽然,你必须做一些事情,如:
execute("ALTER TABLE massive_table CHANGE id id BIGINT")
编辑场上as Alex suggested显然指定限制并允许在两个PostgreSQL和mySQL bigints。
1
您可以使用8字节的ID字段。 Rails不提供创建长整型或双精度列的类型,但可以使用:limit参数完成:
create_table :my_table do |t|
t.integer :long_int_column, :limit => 8
t.float :double_column, :limit => 53
end
8和53是幻数。这适用于PostgreSQL和MySQL数据库,但我没有尝试过任何其他的。
如果你改变一个表,那么你可以写
change_column :my_table, :my_col, :integer, :limit => 8
到8个字节的ID字段中的另一种方法是处理ID侧翻某种方式。这取决于您的数据和应用程序的具体情况。
相关问题
- 1. Unicorn + Rails + Large Uploads
- 2. Rails:rake db:migrate * very * slow on Oracle
- 3. MongoDB Aggregation with $ sample very slow
- 4. Webpack large Bundle Size
- 5. Large File Advice
- 6. videoview for large video
- 7. Large svn external
- 8. VersionControl for large codebase
- 9. Stackoverflow for large xml
- 10. Large arrays&javascript comparison
- 11. Plot large scatterplot
- 12. Large pdf files OutOfMemoryError
- 13. HTML5 Large canvas
- 14. CLLocation distanceFromLocation large value
- 15. Cocos2D - Large Image
- 16. Quicksilver Large Type
- 17. subarrayWithRange with large data
- 18. Large geojson topojson
- 19. PyMC3 large MvNormal before
- 20. SQL Server Large Transaction锁定所有表格
- 21. iPad - iPhone Large UIActivityIndicatorView
- 22. Android选择layout-large?
- 23. Bootstrap,Arrays,Large dataset,vba
- 24. Hbase KeyValue size too large
- 25. __repr__ for(large)composite objects
- 26. Large react-redux form app
- 27. Swing Large Files性能
- 28. Large sorted datatable“wraps”around
- 29. (Very)简单的Java 3D图形库?
- 30. (Very Basic)如果用户类型写入
这是一个学术问题,还是你有一个超过40亿行的表? – DanSingerman
@DanSingerman这不是一个学术问题。由于这个问题,我必须工作到凌晨2点:)有了大量的写入和删除操作,即使只有10几百万行,也很容易得到一个4字节的ID,这会导致各种各样的的问题。 –