Articles of 数据库性能

Linux上的MySQL 5.5和InnoDB如何使用RAM?

MySQL 5.5 InnoDB是否将索引保存在磁盘上的内存和表中? 它是否曾经自己的内存caching部分或整个表? 还是它完全依赖于操作系统页面caching(我猜,这是因为Facebook的SSDcaching是为MySQL构build的,是在操作系统级别完成的: https : //github.com/facebook/flashcache/ )? Linux默认使用页面caching的所有可用RAM吗? 所以如果RAM大小超过表大小+进程使用的内存,那么当MySQL服务器启动并首次读取整个表时它将从磁盘,并从整个表上的这一点是在RAM中? 因此,使用炼金术数据库(Redis之上的SQL,所有内容总是在RAM中: http : //code.google.com/p/alchemydatabase/ )应该不会比MySQL更快,因为RAM和数据库大小相同?

select数据库有没有“严格”的方法?

我对NoSQL没有经验,但我的团队中有一个人正在呼吁使用它。 我相信我们的数据和它的使用对于NoSQL实现来说并不是最佳的。 不过,我的理解是基于阅读各种网页上的各种线索。 我想得到一些更为确切的证据。 因此,我的问题是:“有没有一种技术来估计某个数据库的性能和要求,我可以用它来确认或修改我的直觉?”。 例如,有没有一本好书来计算等价的MongoDB / MySQL模式的性能? 是唯一真正可靠的选项来build立整个事情,并采取指标?

实时Mongo数据库的低优先级批处理

我们希望在我们的Mongo数据库上运行MapReduce,主要是为了能够提取指标。 但是,由于这些MR陷入了Mongo服务器(尤其是100%磁盘IO),导致了一些不良停机。 我们认为这是由于缺less索引。 是否有可能执行像这些低优先级的批处理过程,使它不会使数据库无法访问我们的实时应用程序?

postgresql – 每个表/ db的caching首选项

我很好奇,如果有什么办法提示postgresql哪些数据应该更可能caching在内存中。 在我的情况下,服务器将主要处理读取stream量,整个数据集比可用内存大得多,但是一些表(不一定是最常访问的)应该存储在内存中,而其他表不需要高性能可以从磁盘访问。 我知道memcached或类似可以是合理的解决方法,但也许这一切都可以没有这样做。 这个问题更适合于stackoverflow吗?

为什么数据库分区不起作用? 摘自thedailywtf.com

原始链接。 http://thedailywtf.com/Articles/The-Certified-DBA.aspx 。 文章总结: DBA提出了严格的分区方法,每个磁盘10个分区(3个实际磁盘和3个RAID)。 统计数据显示性能不是最佳的。 然后,DBAbuild议每个磁盘1个分区的替代(添加更多的磁盘)。 这也失败了。 系统pipe理员然后设置一个单一的磁盘,单个分区,并保存一天。 没有提到磁盘的大小,但今天给出了典型的磁盘大小(大约100GB),分区; 将是巨大的,这让我感到惊讶,一个单一的磁盘与所有分区跑赢。 最初我怀疑数据是分开的,因此读取速度更快。 但是,随着时间的推移,所有插入和更新都会发生,性能如何不会降低? 在reddit上看到这个,但是解释是以主轴/盘片为中心。 这篇文章没有提到。 还有其他原因吗? 我只能猜测,表使用不正确的散列分布导致跨磁盘的不均匀分配(错误的分区); 这会增加获取次数。 有什么想法吗?

创build表格列的顺序是否影响性能?

出于纯粹的理由,我总是把表格的第一列作为主键列。 之后,我没有考虑到订单列被添加到表中。 这是错的吗? 在文本或二进制列之前的表中放置整数列是否有性能优势? 或者,也许首先索引列? 虽然我正在使用的当前数据库是MySQL的其他数据库的答案将是有帮助的。

是否有支持行锁的内存表的MySQL引擎?

默认的MySQL内存引擎只支持表锁。 这是在我们的会议桌(在前端使用Joomla)杀死我们的performance。 是否有一个支持基于行锁的内存表(第三方)引擎?

SQL性能如何准确测量瓶颈

昨天我(程序员)和我们的主办部门的一位同事开始了一系列testing,以解决我们网站的性能问题。 我们正在运行带有8gb内存的Windows Server 2008服务器。 我们将用一个8 GB的ram升级我们的服务器,因为我们的客户正在经历后端(Sitecore)的低速performance。 我们认为我们的性能问题与我们服务器上的数据库太多有关。 我们已经快速查看了正在testing的服务器上的性能计数器,但是我们的testing服务器与我们的实时服务器完全不同。 我们在testing服务器上隔离了一些网站,并在服务器上启动了一些压力testing/数据库testing,并尝试用我们没有任何经验的计数器进行测量。 我们如何使用性能计数器在我们的服务器上解决问题? 有没有什么好的指导如何解决这种性能问题呢? 任何意见将不胜感激!

数据库服务器硬件组件(重要性顺序),CPU速度VS CPUcachingVS RAM VS DISK

我是数据库领域的新手,想知道关于数据库性能的关键硬件规格。 我已经search了互联网,发现到目前为止(按重要性递减): 1) Hard Disk: Get an SSD basically (much more IOPS than spinners) 2) Memory: Get as much as you can afford 3) CPU: For the same $ spent, prefer larger cache size over speed. 这些发现是否合理? 编辑 :我想专注于CPU速度VS CPUcaching大小。 编辑2 :数据库用于存储int和int数组的几个文本字段的一些组合。 有很多select查询寻找现有的条目。 如果没有find条目,则插入它。 我会说大多数处理将试图find200列和20k行的表上匹配。 插入语句很less。 编辑3 :另外,我们有很多的意见(基本上select查询)。

是否对使用较低兼容级别的SQL Server有负面影响?

我们有SQL Server 2008 R2,我们正在使用一个兼容性级别设置为2005(90)的数据库。 我们将在某个时候将其升级到2008年,但同时我想知道是否让数据库处于较低的兼容性级别会对性能产生负面影响? 我发现这个问题意味着可能会有一个负面影响,但它是一个老版本的SQL Server。