我想做点什么
select campaign_id,campaign_name,count(subscriber_id),count(distinct subscriber_id)
group by campaign_id,campaign_name from campaigns;
Run Code Online (Sandbox Code Playgroud)
此查询给出除count之外的结果(distinct subscriber_id)
db.campaigns.aggregate([
{$match: {subscriber_id: {$ne: null}}},
{$group: {
_id: {campaign_id: "$campaign_id",campaign_name: "$campaign_name"},
count: {$sum: 1}
}}
])
Run Code Online (Sandbox Code Playgroud)
以下查询给出除count(subscriber_id)之外的结果
db.campaigns_logs.aggregate([
{$match : {subscriber_id: {$ne: null}}},
{$group : { _id: {campaign_id: "$campaign_id",campaign_name: "$campaign_name",subscriber_id: "$subscriber_id"}}},
{$group : { _id: {campaign_id: "$campaign_id",campaign_name: "$campaign_name"},
count: {$sum: 1}
}}
])
Run Code Online (Sandbox Code Playgroud)
但我希望count(subscriber_id),count(distinct subscriber_id)在同一个结果中
我对 Kubernetes 很陌生,我已经在 Kubernetes 上部署了一个集群。创建了一个部署并将 POD 的计数设置为 2。我没有为此部署创建 HPA。
为此,我正在使用 Google Cloud。我为集群启用了自动缩放。最小值为 2,最大值为 30。
我在部署中遇到了OOMKilled错误。
所以问题是
所以只有 HPA 可以增加/减少 PODS 数量,对吗??。在这种情况下,基于内存和 CPU 的 HPA 是每个部署都必须和应该的。
如果我错了,请纠正我。
我们在MySql中有一个表有大约3000万条记录,以下是表结构
CREATE TABLE `campaign_logs` (
`domain` varchar(50) DEFAULT NULL,
`campaign_id` varchar(50) DEFAULT NULL,
`subscriber_id` varchar(50) DEFAULT NULL,
`message` varchar(21000) DEFAULT NULL,
`log_time` datetime DEFAULT NULL,
`log_type` varchar(50) DEFAULT NULL,
`level` varchar(50) DEFAULT NULL,
`campaign_name` varchar(500) DEFAULT NULL,
KEY `subscriber_id_index` (`subscriber_id`),
KEY `log_type_index` (`log_type`),
KEY `log_time_index` (`log_time`),
KEY `campid_domain_logtype_logtime_subid_index` (`campaign_id`,`domain`,`log_type`,`log_time`,`subscriber_id`),
KEY `domain_logtype_logtime_index` (`domain`,`log_type`,`log_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
Run Code Online (Sandbox Code Playgroud)
以下是我的查询
我正在做UNION ALL而不是使用IN操作
SELECT log_type,
DATE_FORMAT(CONVERT_TZ(log_time,'+00:00','+05:30'),'%l %p') AS log_date,
count(DISTINCT subscriber_id) AS COUNT,
COUNT(subscriber_id) AS total
FROM stats.campaign_logs USE INDEX(campid_domain_logtype_logtime_subid_index)
WHERE DOMAIN='xxx'
AND …Run Code Online (Sandbox Code Playgroud) mysql sql aggregate-functions query-performance mysql-variables
我在 MySql 服务器中有一个表,该表包含大约 1M 行。只是因为一个列表每天都在占用更多的磁盘空间。此列的数据类型为 Mediumblob。表大小约为 90 GB。
在每一行插入之后,我做一些处理然后在我真的不需要这个列之后。
那么对于这一列,如果我在处理该行后将该值设置为 NULL,MySql 是否利用这个空白空间进行下一行插入?
MySql 服务器详细信息
服务器版本:5.7
引擎:InnoDB
托管:谷歌云Sql
编辑 1:我从表中删除了 90% 的行,然后我运行了 OPTIMIZE TABLE table_name 但它只减少了 4GB 的磁盘空间并且它没有回收可用磁盘空间。
编辑 2 我什至删除了我的数据库并创建了新的数据库和表,但 MySql 服务器仍然显示 80GB 磁盘空间。MySQL服务器所有数据库的大小
SELECT table_schema "database name",
sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema;
+--------------------+---------------------+------------------+
| database name | database size in MB | free space in …Run Code Online (Sandbox Code Playgroud) 我有包含 1600 万条记录的 MySql 表,由于一些迁移工作,我正在读取整个 Mysql 表。
以下代码用于在 MySql 中流式传输大型 ResultSet
statement = connection.createStatement(
java.sql.ResultSet.TYPE_FORWARD_ONLY,
java.sql.ResultSet.CONCUR_READ_ONLY);
statement.setFetchSize(Integer.MIN_VALUE);
Run Code Online (Sandbox Code Playgroud)
但这是一次流式传输一个结果,这是否意味着我们正在为每一行访问 MySql 服务器
在使用流式传输时,我们可以设置类似这样的语句:setFetchSize(1000);
我想在流式传输大型结果集时减少到服务器的往返次数
这是我的MySql 5.5中的表,具有3000万条记录
CREATE TABLE `campaign_logs` (
`domain` varchar(50) DEFAULT NULL,
`campaign_id` varchar(50) DEFAULT NULL,
`subscriber_id` varchar(50) DEFAULT NULL,
`message` varchar(21000) DEFAULT NULL,
`log_time` datetime DEFAULT NULL,
`log_type` varchar(50) DEFAULT NULL,
`level` varchar(50) DEFAULT NULL,
`campaign_name` varchar(500) DEFAULT NULL,
KEY `subscriber_id_index` (`subscriber_id`),
KEY `log_type_index` (`log_type`),
KEY `log_time_index` (`log_time`),
KEY `campid_domain_logtype_logtime_subid_index` (`campaign_id`,`domain`,`log_type`,`log_time`,`subscriber_id`),
KEY `domain_logtype_logtime_index` (`domain`,`log_type`,`log_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
Run Code Online (Sandbox Code Playgroud)
在以下查询中,我正在按时区分组
查询
SELECT
log_type
,DATE_FORMAT(CONVERT_TZ(log_time,'+00:00','+05:30'),'%l %p') AS log_date
,count(*) AS total
,count(DISTINCT subscriber_id) d
FROM
stats.campaign_logs USE INDEX(campid_domain_logtype_logtime_subid_index)
WHERE
DOMAIN='xxx'
AND campaign_id='123' …Run Code Online (Sandbox Code Playgroud) 我们在 MySql 5.5 中有一个大表(大约有 1.6 亿条记录)。
我们安装 mysql 的机器有 4GB RAM
表模式
+---------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| domain | varchar(50) | YES | MUL | NULL | |
| uid | varchar(100) | YES | | NULL | |
| sid | varchar(100) | YES | MUL | NULL | |
| vurl | varchar(2500) | YES | | NULL | |
| ip | varchar(20) | YES | …Run Code Online (Sandbox Code Playgroud) 我在Google App引擎中部署了一个应用程序.
我能够获得部署此应用程序的计算机的IP地址,但我的问题是此应用程序是否始终在相同的IP上运行,或者在不同的IP上运行的任何机会.
由于Google应用引擎是一种云解决方案,因此它可以在多个位置一次运行多个实例.
谢谢
google-app-engine google-cloud-endpoints google-cloud-platform
我们有一个分析产品。我们为每位客户提供一个 JavaScript 代码,他们将其放入他们的网站中。如果用户访问我们的客户站点,Java 脚本代码就会访问我们的服务器,以便我们代表该客户存储此页面访问。每个客户都包含唯一的域名。
我们将此页面访问存储在 MySql 表中。
以下是表架构。
CREATE TABLE `page_visits` (
`domain` varchar(50) DEFAULT NULL,
`guid` varchar(100) DEFAULT NULL,
`sid` varchar(100) DEFAULT NULL,
`url` varchar(2500) DEFAULT NULL,
`ip` varchar(20) DEFAULT NULL,
`is_new` varchar(20) DEFAULT NULL,
`ref` varchar(2500) DEFAULT NULL,
`user_agent` varchar(255) DEFAULT NULL,
`stats_time` datetime DEFAULT NULL,
`country` varchar(50) DEFAULT NULL,
`region` varchar(50) DEFAULT NULL,
`city` varchar(50) DEFAULT NULL,
`city_lat_long` varchar(50) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
KEY `sid_index` (`sid`) USING BTREE,
KEY `domain_index` (`domain`),
KEY `email_index` (`email`),
KEY …Run Code Online (Sandbox Code Playgroud) 我们在谷歌应用引擎上运行了一个Java应用程序.有一种叫做联系.以下是示例模式
Contact
{
long id
String firstName
String lastName
...
}
Run Code Online (Sandbox Code Playgroud)
以上是existig模型,用于支持我们在数据存储和文本搜索中存储此对象的一些要求
现在我们想要将联系人与他们的页面查看数据集成.
每个联系人可以拥有数千个页面浏览记录,甚至可以拥有数百万个联系人
以下是示例页面访问对象[注意:我们目前没有此对象,这只是提供有关页面访问的信息]
PageVisit
{
long id
String url
String refUrl
int country
String city
....
}
Run Code Online (Sandbox Code Playgroud)
我们有一个要求,需要查询联系核心属性和他的页面访问数据
对于前:
select * from Contact where firstName = 'abc' and url = 'cccccc.com';
select * from Contact where firstName = 'abc' or url = 'cccccc.com';
Run Code Online (Sandbox Code Playgroud)
要编写此类查询,我们需要联系核心属性和访问的页面需要在Contact对象本身中可用,但联系人可以拥有大量的页面视图.因此,这将跨越实体最大大小限制
那么如何在数据存储和文本搜索中设计这种情况下的联系模型.
谢谢
google-app-engine gql google-cloud-datastore google-cloud-platform