我打算创建多个具有类似功能的rails博客应用程序。为了减少管理这些rails应用程序所花费的时间,我决定创建一个单一的内容管理系统来监督所有这些应用程序。例如:content.example.com
在这个CMS的设计中,我一直在讨论是否使用一个包含所有博客应用程序数据的mysql数据库。这个单一的数据库将在CMS应用程序("content.example.com")上,然后其他应用程序将查询它们的数据。
博客应用:
//模型Blog.rb
class Blog < ActiveRecord::Base
establish_connection "exter
我在memsql和mysql中运行了下面的查询,但是它所花费的时间完全不同。
梅姆斯林
select count(*) from po A , cu B , tsk C where A.customer_id = B.customer_id and B.taskid = C.id and A.domain = 5 and week(B.post_date) = 22;
+----------+
| count(*) |
+----------+
| 98952 |
+----------+
1 row in set (19.89 sec)
Mysql
select count(*)
我们在实例上运行MySQL Ver 5.7.18 (2,2GBRAM,40GBSSD)。
除了MySQL之外,我们还在这台机器上运行一些访问数据库的Java服务。
在重新启动机器或重新启动MySQL服务之后,我们观察到一些SELECT语句的性能出现了巨大的下降,主要是在一个有1500万行(累积超过1年)的表上执行的。SELECT语句是用户驱动的(Web前端),主要是获取最新的条目。几个小时后,这些语句的性能开始提高,并且足够快(主要是<1000 to )。但是,如果我们开始运行影响旧值的查询,性能就会再次急剧下降。
如果运行mysqltuner.pl,将得到以下输出:
--------
我正在使用MySQL数据库构建一个应用程序。我只有一张表格:
Key | Metadata | Data
------------+-----------+-----------
Some GUID | Some info | large data
元数据是一组小列,如DateTime、VarChar(8)等。数据列是一个长文本列,通常包含250 to的文本(但可以包含数兆字节的文本)。我只使用键进行查找(从不扫描元数据或数据),并且键没有排序。我很少删除。
这张桌子大小合适吗?即。它能轻松处理100000多行吗?
我知道100000行对于一个表来说是一个很小的数字,但是
我已经将C:\Program Files\MySQL\MySQL Server 5.6\my-default.ini复制到C:\Program Files\MySQL\MySQL Server 5.6\my.ini,并更改了一些设置,包括设置table_definition_cache=400。当我登录到数据库并查看table_definition_cache值时,会得到以下信息:
mysql> SHOW GLOBAL VARIABLES LIKE '%table_definition_cache%';
+------------------------+-------+