I have a pretty small database (15 tables, ~1000 rows) that is being accessed very frequently to get data. I was wondering what other options besides a database I had for storing the data and accessing it?
我有一个非常小的数据库(15个表,大约1000行),它经常被访问以获取数据。我想知道除了数据库之外,我还有什么办法来存储和访问数据?
2 个解决方案
#1
2
TL;DR; Unless you have a really imperative reason to organize your data in a different way just go with the relational DBMS option instead of trying to reinvent the wheel.
TL,博士;除非你有一个非常必要的理由来用不同的方式来组织你的数据,而不是尝试重新发明*。
In terms of data a relational database is, almost always, the best option. Is been optimized for searching and has a relatively good performance for inserts and updates while at the same time maintaining a reasonable level of structure, as well as adhering to a series of normal forms to enforce structure and good design decisions.
在数据方面,关系数据库几乎总是最好的选择。经过优化的搜索,在插入和更新的同时保持了较好的性能,同时保持了合理的结构层次,并坚持了一系列的正常形式来执行结构和良好的设计决策。
A "data" "base" is always required when you're storing data in a structured organized way. So you'll always need a database, the actual implementation of the database and the way the information is organized is called DBMS (database management system) and in that sense you have a lot of options.
以结构化的方式存储数据时,总是需要“数据”“基础”。所以你总是需要一个数据库,数据库的实际实现和信息的组织方式被称为DBMS(数据库管理系统)在这个意义上你有很多选择。
Out of the top of my mind, in terms of the way the database is organized you have non-relational databases (usually called NO-SQL database)
在我看来,根据数据库的组织方式你有非关系数据库(通常称为非sql数据库)
- Document-oriented databases.
- 面向文档的数据库。
- Graph Databases
- 图形数据库
- Key Value Store databases
- 键值存储数据库
to quote a few.
引用。
You have several relational DBMS at your disposal:
您可以使用几个关系DBMS:
- Oracle
- 甲骨文
- Sql Server
- Sql Server
- Postgree SQL
- Postgree SQL
- MySql
- MySql
- Sqllite
- Sqllite这样
And even other kind of DBMS which are not generic but application specific.
还有其他类型的数据库管理系统,它们不是通用的,而是特定于应用程序的。
In general, your choice of the backend database should be determined by your necessities now and what you think you'll need in the future in terms of:
一般而言,你对后端资料库的选择,应视乎你现时的需要及你认为未来需要什么而定:
- The data that you're going to maintain and manage
- 你要维护和管理的数据
- How you think about the data
- 你怎么看待这些数据
- Performance restrictions and non functional requirements.
- 性能限制和非功能需求。
- The level of familiarity of you team with the new technology versus the well know relational-sql pair.
- 您的团队对新技术的熟悉程度和熟悉的关系sql对。
- The logical organization of the data and how you plan to access it.
- 数据的逻辑组织以及您计划如何访问它。
#2
0
Tjameson is right, you can use an in memory store to either act as the authoritative database, or as a cache for a database.
Tjameson是对的,您可以使用内存存储作为权威数据库,或者作为数据库的缓存。
Obviously the in memory database is most likely too volatile for permanent storage if it isn't flushing data out to disk from time to time. A reboot will kill everything.
显然,如果内存数据库不不时地将数据刷新到磁盘上,那么它对于永久存储来说很可能太不稳定了。重启会杀死一切。
I would also agree with tjameson that maybe the problem is somewhere else.
我也同意tjameson的观点,也许问题出在别的地方。
Best way to debug production issues is to get data, data, data. The problem isn't always where you think it is.
调试生产问题的最佳方法是获取数据、数据和数据。问题并不总是你认为的那样。
#1
2
TL;DR; Unless you have a really imperative reason to organize your data in a different way just go with the relational DBMS option instead of trying to reinvent the wheel.
TL,博士;除非你有一个非常必要的理由来用不同的方式来组织你的数据,而不是尝试重新发明*。
In terms of data a relational database is, almost always, the best option. Is been optimized for searching and has a relatively good performance for inserts and updates while at the same time maintaining a reasonable level of structure, as well as adhering to a series of normal forms to enforce structure and good design decisions.
在数据方面,关系数据库几乎总是最好的选择。经过优化的搜索,在插入和更新的同时保持了较好的性能,同时保持了合理的结构层次,并坚持了一系列的正常形式来执行结构和良好的设计决策。
A "data" "base" is always required when you're storing data in a structured organized way. So you'll always need a database, the actual implementation of the database and the way the information is organized is called DBMS (database management system) and in that sense you have a lot of options.
以结构化的方式存储数据时,总是需要“数据”“基础”。所以你总是需要一个数据库,数据库的实际实现和信息的组织方式被称为DBMS(数据库管理系统)在这个意义上你有很多选择。
Out of the top of my mind, in terms of the way the database is organized you have non-relational databases (usually called NO-SQL database)
在我看来,根据数据库的组织方式你有非关系数据库(通常称为非sql数据库)
- Document-oriented databases.
- 面向文档的数据库。
- Graph Databases
- 图形数据库
- Key Value Store databases
- 键值存储数据库
to quote a few.
引用。
You have several relational DBMS at your disposal:
您可以使用几个关系DBMS:
- Oracle
- 甲骨文
- Sql Server
- Sql Server
- Postgree SQL
- Postgree SQL
- MySql
- MySql
- Sqllite
- Sqllite这样
And even other kind of DBMS which are not generic but application specific.
还有其他类型的数据库管理系统,它们不是通用的,而是特定于应用程序的。
In general, your choice of the backend database should be determined by your necessities now and what you think you'll need in the future in terms of:
一般而言,你对后端资料库的选择,应视乎你现时的需要及你认为未来需要什么而定:
- The data that you're going to maintain and manage
- 你要维护和管理的数据
- How you think about the data
- 你怎么看待这些数据
- Performance restrictions and non functional requirements.
- 性能限制和非功能需求。
- The level of familiarity of you team with the new technology versus the well know relational-sql pair.
- 您的团队对新技术的熟悉程度和熟悉的关系sql对。
- The logical organization of the data and how you plan to access it.
- 数据的逻辑组织以及您计划如何访问它。
#2
0
Tjameson is right, you can use an in memory store to either act as the authoritative database, or as a cache for a database.
Tjameson是对的,您可以使用内存存储作为权威数据库,或者作为数据库的缓存。
Obviously the in memory database is most likely too volatile for permanent storage if it isn't flushing data out to disk from time to time. A reboot will kill everything.
显然,如果内存数据库不不时地将数据刷新到磁盘上,那么它对于永久存储来说很可能太不稳定了。重启会杀死一切。
I would also agree with tjameson that maybe the problem is somewhere else.
我也同意tjameson的观点,也许问题出在别的地方。
Best way to debug production issues is to get data, data, data. The problem isn't always where you think it is.
调试生产问题的最佳方法是获取数据、数据和数据。问题并不总是你认为的那样。