MongoDB 是非关系型数据库中的一种。 出于某些原因,我们用了Mongo。他们说Mongo的最大特点是快。 不过这种快是以空间换时间的代价而得来的。 这个空间代价包括 1.DB至少占用64M(好像是这个数字,因为我们的DB实际往往只有几M,但却要占用那么多,空间浪费严
MongoDB 是非关系型数据库中的一种。
出于某些原因,我们用了Mongo。他们说Mongo的最大特点是快。
不过这种快是以空间换时间的代价而得来的。
这个空间代价包括
1.DB至少占用64M(好像是这个数字,因为我们的DB实际往往只有几M,但却要占用那么多,空间浪费严重)
2.加载到内存里的数据不会主动释放,虚拟主机,导致服务挂掉了。具体机制不懂,只知道,为了提高速度,香港服务器,Mongo的内存耗费是相当惊人的。
本文主要讲述在实践中碰到的一些Mongo的问题,由于我对Mongo底层的实现机制
不是很了解,有不懂的地方,还希望大牛们能帮解答下。
1.就是DB数量对Mongo的性能及稳定性的影响。
我们是单台数据库服务器,网站空间,实践中,当DB数量过万时,整个Mongo就突然变得极不稳定,随时都会挂掉。
挂掉的直接原因 好像是内存不够,由于不是我本人负责的,具体情况我也不知道。
2.Mongo的数据释放
除了DB级别的删除,Mongo会直接释放空间,对于其它像Collection 或 Document层的删除,磁盘空间并没有直接释放。
随着岁月的积累,整个磁盘就会布满碎片。他们使用的一种解决方法是Mongo 自带的repair 命令
3.加载到内存里的数据
首先是索引,然后是命中的数据块,索引的应该是常驻的。命中的数据块是不是一旦进来就不出去了。
为什么会出现前面所说的性能临界点。可不可以手动设置。

InnoDB uses redologs and undologs to ensure data consistency and reliability. 1.redologs record data page modification to ensure crash recovery and transaction persistence. 2.undologs records the original data value and supports transaction rollback and MVCC.

Key metrics for EXPLAIN commands include type, key, rows, and Extra. 1) The type reflects the access type of the query. The higher the value, the higher the efficiency, such as const is better than ALL. 2) The key displays the index used, and NULL indicates no index. 3) rows estimates the number of scanned rows, affecting query performance. 4) Extra provides additional information, such as Usingfilesort prompts that it needs to be optimized.

Usingtemporary indicates that the need to create temporary tables in MySQL queries, which are commonly found in ORDERBY using DISTINCT, GROUPBY, or non-indexed columns. You can avoid the occurrence of indexes and rewrite queries and improve query performance. Specifically, when Usingtemporary appears in EXPLAIN output, it means that MySQL needs to create temporary tables to handle queries. This usually occurs when: 1) deduplication or grouping when using DISTINCT or GROUPBY; 2) sort when ORDERBY contains non-index columns; 3) use complex subquery or join operations. Optimization methods include: 1) ORDERBY and GROUPB

MySQL/InnoDB supports four transaction isolation levels: ReadUncommitted, ReadCommitted, RepeatableRead and Serializable. 1.ReadUncommitted allows reading of uncommitted data, which may cause dirty reading. 2. ReadCommitted avoids dirty reading, but non-repeatable reading may occur. 3.RepeatableRead is the default level, avoiding dirty reading and non-repeatable reading, but phantom reading may occur. 4. Serializable avoids all concurrency problems but reduces concurrency. Choosing the appropriate isolation level requires balancing data consistency and performance requirements.

MySQL is suitable for web applications and content management systems and is popular for its open source, high performance and ease of use. 1) Compared with PostgreSQL, MySQL performs better in simple queries and high concurrent read operations. 2) Compared with Oracle, MySQL is more popular among small and medium-sized enterprises because of its open source and low cost. 3) Compared with Microsoft SQL Server, MySQL is more suitable for cross-platform applications. 4) Unlike MongoDB, MySQL is more suitable for structured data and transaction processing.

MySQL index cardinality has a significant impact on query performance: 1. High cardinality index can more effectively narrow the data range and improve query efficiency; 2. Low cardinality index may lead to full table scanning and reduce query performance; 3. In joint index, high cardinality sequences should be placed in front to optimize query.

The MySQL learning path includes basic knowledge, core concepts, usage examples, and optimization techniques. 1) Understand basic concepts such as tables, rows, columns, and SQL queries. 2) Learn the definition, working principles and advantages of MySQL. 3) Master basic CRUD operations and advanced usage, such as indexes and stored procedures. 4) Familiar with common error debugging and performance optimization suggestions, such as rational use of indexes and optimization queries. Through these steps, you will have a full grasp of the use and optimization of MySQL.

MySQL's real-world applications include basic database design and complex query optimization. 1) Basic usage: used to store and manage user data, such as inserting, querying, updating and deleting user information. 2) Advanced usage: Handle complex business logic, such as order and inventory management of e-commerce platforms. 3) Performance optimization: Improve performance by rationally using indexes, partition tables and query caches.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

SublimeText3 Linux new version
SublimeText3 Linux latest version