octree, BSP ?

i want to optimize my little 3D engine, and it looks like octrees & BSPs are the best way to do this.
But i don’t see how to cut your scene (and in fact some of your objects) into sub-parts.

The problem is: i load a 3D file, then i put all the data into arrays. But the data are only separated when textures, materials are changing. So, i think i need to cut them relatively to some view parts.

I’ve never done such a thing before, and i think, even if it’s not pure OpenGL, some of you could help me, or show me some way(s) to follow in order to reach my goal.

Thank you