自己写数据库,索引文件很大,加载会很慢,按理应该怎么处理?分文件?

SteveDotXu 2017-01-20 11:51:47
如题:
请教一个事情,数据库的按照索引搜索数据很快,但是加载索引文件会很慢,应该怎么做避免这个问题呢?索引文件分小?

索引使用如下方式写文件,读文件了:
public static void writeObj2File(String fName, Object obj) {
try {
ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream(fName));
oo.writeObject(obj);
oo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public static Object getObjFromFile(String fName) {
try {
ObjectInputStream oi = new ObjectInputStream(new FileInputStream(fName));
return oi.readObject();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}

百万的数据,60M的索引,加载出来后花了15秒左右。。。
希望大家能提供建议。谢谢大家了、
...全文
435 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦雨心思 2019-07-18
  • 打赏
  • 举报
回复
heapfile 文件布局存储
SteveDotXu 2017-01-23
  • 打赏
  • 举报
回复
引用 3楼不想长大啊 的回复:
[quote=引用 2 楼 xugangwen 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 你自己按照一定的格式,把数据存起来了,然后自己设计了索引,现在的问题是加载索引太慢
对现在的问题就是加载索引太慢,还望大神指点下;[/quote] 你是要一次吧整个索引文件都加载到内存的吗?[/quote]现在索引是一个B+树的模型,直接序列化到文件的,如果不全部加载,那么这个就需要怎么分割小,但是我看Mysql的索引文件也没有分那么多,一个表一个索引文件,按理也很多了……
SteveDotXu 2017-01-23
  • 打赏
  • 举报
回复
现在索引是一个B+树的模型,直接序列化到文件的,如果不全部加载,那么这个就需要怎么分割小,但是我看Mysql的索引文件也没有分那么多,一个表一个索引文件,按理也很多了……
LongRui888 2017-01-23
  • 打赏
  • 举报
回复
引用 2 楼 xugangwen 的回复:
[quote=引用 1 楼 yupeigu 的回复:] 你自己按照一定的格式,把数据存起来了,然后自己设计了索引,现在的问题是加载索引太慢
对现在的问题就是加载索引太慢,还望大神指点下;[/quote] 你是要一次吧整个索引文件都加载到内存的吗?
LongRui888 2017-01-22
  • 打赏
  • 举报
回复
你自己按照一定的格式,把数据存起来了,然后自己设计了索引,现在的问题是加载索引太慢
SteveDotXu 2017-01-22
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
你自己按照一定的格式,把数据存起来了,然后自己设计了索引,现在的问题是加载索引太慢
对现在的问题就是加载索引太慢,还望大神指点下;

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧