Finding records quickly is not a project requirement. Dont waste your time on it. The graders wont care if it takes 1 second to find a record within their test database of ~20 or if it takes 100 milliseconds.
The graders wouldn't want to spend too much time trying to understand how your application works. Keep them happy by making your app small and simple. Dont do anything more than you have to.
Yes. When I said "smaller is better", I meant synchronize only what must be synchronized. In some cases, it may just be better to synchronize a small block of code within a method and not the entire method.