You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
3.6 KiB
Plaintext

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

00:01 Now that you know how to work MongoDB, you know how to work its shell,
00:04 what the query syntax is, you've seen PyMongo as well as MongoEngine,
00:07 it's time to turn our attention to tuning MongoDB
00:11 to be the best database it can possibly be.
00:14 We're going to focus on how to make our regular MongoDB server
00:18 a high performance MongoDB database
00:21 and you'll see there's no magic here, a lot of the things that you can do
00:24 are relatively straightforward, and there's a systematic way to go about it.
00:29 I want to start this section by maybe putting a little perspective on it.
00:34 I want to start this section, this chapter, by putting a little perspective out there.
00:41 When people come to NoSql and they start looking for alternative databases
00:44 often the allure of these databases is their performance
00:49 you hear about things like sharding, horizontally scaling them,
00:52 some incredible performance numbers, things like that.
00:55 That may be what you really need, that may be the most important thing
00:58 and certainly if you don't have performance out of your database it's a big problem.
01:03 We're going to certainly figure out how to make our databases faster
01:07 and the variety of techniques that we have available to us in MongoDB.
01:11 That said, your biggest problem probably isn't performance,
01:14 you may have a big data problem, you may have terabytes or petabytes of data
01:19 but most applications don't.
01:22 You may have a performance problem, it may be that you have so much data
01:26 or you are asking such complex queries that it really does take
01:30 very precise tuning and scaling to make it work.
01:33 So we're going to focus on some of these types of things.
01:36 That said, we all have a complexity problem with our application,
01:40 it's always a pain to maintain these databases
01:43 especially when we're working with relational databases,
01:46 you hear about things like migrations and updating your schema
01:49 adding, removing, transforming columns, all of this stuff is really complex
01:53 and it even makes deployment really, really challenging,
01:56 you want to release a new version of something based on SQLAlchemy
01:59 but you need to change the database scheme before it will even run—
02:02 okay, that sounds like it could be a little bit of a problem.
02:05 What you'll see with MongoDB and these document databases is
02:10 one of their biggest benefits is the simplicity that they bring.
02:14 The document structure means there's fewer tables,
02:18 there is much fewer connections between these tables,
02:21 so when you think about the trade-offs and performance and things like that
02:24 keep in mind that probably the biggest benefit
02:27 that you are going to get from MongoDB is you are going to have
02:30 simpler versioning, evolution, maintainability, development story.
02:33 I just want to put that out there, because I know sometimes
02:36 people will say well, I got MongoDB to perform at this speed
02:40 and I cut this other database, and if I tweak it like this and adapt it like that
02:44 maybe I could get it to go a little faster, so maybe we should use that instead.
02:47 And maybe, I don't know, it depends on the situation,
02:50 and this is very abstract, so it's hard to say, but keep in mind
02:53 that one of the biggest things these document databases
02:55 bring to you to the table here, is this simplicity.
02:59 It just so happens we can also make them really, really fast.
03:03 So simple and fast, sounds like a great combination,
03:05 so let's get into this section where we are going to make MongoDB much faster.