传统数据库的瓶颈?


在“http://www.infoworld.com/d/data-management/newsql-could-combine-the-best-sql-and-nosql-170761?page=0,0”有这么一段话:

The sluggishness of database systems usually can be attributed to a number of factors, Stonebraker said. Such systems maintain a buffer pool, maintain logs for recovery purposes, as well as manage latching and locking data fields so they aren't overwritten by another operation. In one test held by VoltDB, these behaviors consumed 96 percent of the system's resources.


很有意思的一个数据,对于大型系统开发人员来讲,有很好的启示作用。

做一个事情,如果能建立起一个“标准”,用标准作为尺子,去丈量我们面对的对象,才能更好的从感性认识走到理性认识的道理上。国内在开发很多大型系统,如果兵马未动粮草(衡量尺度)先行,相信会有好的效果。


注:Stonebraker,PostgreSQL的创始人
传统数据库的瓶颈? - 那海蓝蓝 - 那海蓝蓝的博客
http://cacm.acm.org/blogs/blog-cacm/83396-errors-in-database-systems-eventual-consistency-and-the-cap-theorem/fulltext
根据查询到的占用数据库的用户信息,可以从以下几个方面优化数据库性能: ### 查询语句优化 如果发现某些用户的查询语句性能较差,可对其进行优化。例如,使用合适的操作符和函数,避免使用性能较差的操作,如避免在 WHERE 子句中使用函数,因为这可能会导致索引失效。关注查询的执行计划和性能指标,及时进行优化和调整。对于复杂查询,可考虑将子查询转换为 JOIN 操作,以提高查询效率[^4][^5]。 ```sql -- 原查询使用子查询 SELECT column1, column2 FROM table1 WHERE column1 IN (SELECT column1 FROM table2); -- 优化后使用 JOIN SELECT t1.column1, t1.column2 FROM table1 t1 JOIN table2 t2 ON t1.column1 = t2.column1; ``` ### 索引优化 分析占用数据库的用户查询所涉及的表,如果发现某些查询经常进行全表扫描,可考虑为这些查询涉及的列创建合适的索引。例如,对于经常用于过滤和排序的列,创建单列索引;对于多个列组合查询的情况,创建复合索引。同时,定期清理无用索引,并维护索引以减少碎片化,提高索引的使用效率[^4][^5]。 ```sql -- 创建单列索引 CREATE INDEX idx_column1 ON table1 (column1); -- 创建复合索引 CREATE INDEX idx_column1_column2 ON table1 (column1, column2); ``` ### 数据库配置调整 如果某些用户的操作对数据库资源消耗较大,可根据实际情况调整数据库的配置参数。例如,对于 PostgreSQL 数据库,可调整 `shared_buffers` 和 `work_mem` 等参数,以提高数据库的缓存能力和查询处理能力。同时,设置合理的事务隔离级别,避免不必要的锁竞争,提高并发性能[^5]。 ### 硬件资源升级 如果发现数据库的硬件资源成为性能瓶颈,可根据用户的使用情况和数据库的需求,考虑升级硬件资源。例如,使用 SSD 存储代替传统的机械硬盘,提高数据读写速度;升级 CPU 为多核处理器,提高数据库的并发处理能力[^5]。 ### 并发控制 分析占用数据库的用户的并发操作情况,对于并发较高的场景,设置合理的事务隔离级别,避免死锁和数据不一致的问题。同时,通过监控工具,如 PostgreSQL 的 `pg_stat_statements`,监控查询性能,及时发现并发问题并进行调整[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值