关于rails/mysql的一二事

有的时候需要导入大量数据到数据库,还需要共享给团队中其他人,rails并没有提供一个最直接的途径来import数据,虽然有个db:fixtures:load但是不够灵活.且导出数据可能还需要自己手写一个rake task

我是一个懒人,喜欢最简单的办法,就直接写sql在migration脚本里面,execute执行,至于sql从哪里来?可以字符串拼接,可以从mysql中dump.

今天碰到一个问题,因为数据量大,migration script也较大,在另外一个人的mac上碰到"max_allowed_packet"错误,貌似是因为mac下mysql的max_allowed_packet默认设置太小,对比我的Ubuntu下默认设置,修改数值至少不低于32M即可解决

另外一个是rails database performance tip

Add an index to the foreign key in the child table.

当关联关系较多,数据量增长较快时,会有很大的帮助

所以,简历子表的外键时,顺手给外键加上index吧