小编Irf*_*gwb的帖子

如何通过查询在数百万行中优化计数和排序

在优化order by和count查询时需要帮助,我有数百万(约3百万)行的表.

我必须连接4个表并获取记录,当我运行简单查询时,它只需要毫秒才能完成,但是当我尝试通过离开连接表来计数或排序时,它会无限期地停留.

请参阅以下案例.

DB服务器配置:

CPU Number of virtual cores: 4
Memory(RAM): 16 GiB
Network Performance: High
Run Code Online (Sandbox Code Playgroud)

每张表中的行:

tbl_customers -  #Rows: 20 million.
tbl_customers_address -  #Row 25 million.
tbl_shop_setting - #Rows 50k
aio_customer_tracking - #Rows 5k
Run Code Online (Sandbox Code Playgroud)

表格架构:

CREATE TABLE `tbl_customers` (
    `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
    `shopify_customer_id` BIGINT(20) UNSIGNED NOT NULL,
    `shop_id` BIGINT(20) UNSIGNED NOT NULL,
    `email` VARCHAR(225) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
    `accepts_marketing` TINYINT(1) NULL DEFAULT NULL,
    `first_name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
    `last_name` VARCHAR(50) NULL DEFAULT …
Run Code Online (Sandbox Code Playgroud)

mysql database database-administration

14
推荐指数
2
解决办法
515
查看次数

PHP curl连接超时错误

我在PHP中使用curl调用API,有时它工作正常,有时我得到 Failed to connect to api-domain.com port 80: Connection timed out

这有点奇怪,有时它正在工作,有时它不是.要解决我打印的问题,curl_getinfo()当它不工作时,请在下面查看.

它显示连接时间= 0和总时间= 130秒,我不确定它是什么意思.如果任何人对此有充分了解,请查看以下日志并帮助我了解具体问题.

[url] => http://api-domain.com/?act=get_story_banners
[content_type] => text/html; charset=UTF-8
[http_code] => 200
[header_size] => 630
[req   uest_size] => 283
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 130.335916
[namelookup_time] => 0.000016
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 744
[speed_download] => 13814
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[redirect_url] …
Run Code Online (Sandbox Code Playgroud)

php curl php-curl

11
推荐指数
2
解决办法
5630
查看次数

具有多个输入参数的Amazon EMR作业

在Amazon数据管道中,我正在创建使用Hive将S3复制到EMR的活动.为了实现它,我必须将两个输入参数作为一个步骤传递给EMR作业.我搜索了所有数据管道文档,但没有找到指定多个输入参数的方法.我还与AWS支持团队讨论,但他们也不清楚.他们建议的方式/技巧也不起作用.

下面是我的步骤参数和Hive查询.如果有人有想法实现它,请告诉我.

脚步:

s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://us-east-1.elasticmapreduce/libs/hive/hive-script,--base-path,s3://us-east-1.elasticmapreduce/libs/hive/,--hive-versions,latest,--run-hive-script,--args,-f,s3://gwbpipeline-test/scripts/multiple_user_sample_new.hql, -d, "output1=#{output.directoryPath}", -d,"input1=s3://gwbpipeline-test/temp/sb-test/#{format(@scheduledStartTime,'YYYY-MM-dd hh-mm-ss')}/input/tbl_users/", -d,"input2=s3://gwbpipeline-test/temp/sb-test/#{format(@scheduledStartTime,'YYYY-MM-dd hh-mm-ss')}/input/tbl_user_children/"
Run Code Online (Sandbox Code Playgroud)

Hive查询:

drop table if exists tbl_users;
CREATE EXTERNAL TABLE tbl_users (
user_id string, user_first_name string, user_last_name string, user_email string, user_dob string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '${input1}';

drop table if exists tbl_user_children;
CREATE EXTERNAL TABLE tbl_user_children (
id string, full_name string, birthday string, type string, user_id string, facebook_id string, date_added string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '${input2}';

drop table if exists tbl_users_child_output;
CREATE EXTERNAL …
Run Code Online (Sandbox Code Playgroud)

hadoop amazon-s3 amazon-emr amazon-data-pipeline

5
推荐指数
1
解决办法
1475
查看次数

我们可以使用 AWS SNS 发送 Web 推送通知吗

我们可以使用 AWS SNS 服务在移动设备和 Web 浏览器上发送 Web 推送通知吗?

我阅读了SNS的完整文档,但没有找到任何相关内容,只是想确认一下是否支持像下面这样的服务的Web推送通知。

https://sendpulse.com

https://www.moengage.com/

https://onesignal.com/

push-notification amazon-web-services amazon-sns web-push

5
推荐指数
1
解决办法
1万
查看次数

考虑到高性能,最好保留一张表或多张表用于类似类型的数据

我正在为ERP等销售和购买应用程序设计DATABASE,并使用MYSQL作为RDBMS,我对创建销售和购买实体表与每个模块的单个表(销售/购买)或每个实体多个表(销售)存有疑问订单,销售发票,销售退货,采购订单,购买发票,购买退货)在更长的时间内运行。以下是我的用例。

我的应用程序还将具有“销售订单”,“销售交货”,“销售发票”,“销售退货”和“贷方通知单”以及“采购”模块的同一实体,所有这些实体都可以在该模块中输入链接。像销售订单可以转换成销售交货或销售订单,销售交货可以转换成销售发票。因此,需要维护参考b / w模块的每个实体。

现在,对于将具有实体类型的每个模块都说“ sale_entity”和“ purchase_entity”的所有模块都保留在一个表中,还是应该为每个实体类型创建单独的表,例如sale_order,sale_invoice,sale_return,purchase_order,purchase_invoice,purchase_return等。

以下是我在两种情况下想到的内容:

单个表:我确实想将每个模块的单个表都保留在单个表中,但是我担心长时间运行会降低性能,它将迅速增加表的大小并可能降低性能。

多表:难以同时管理,维护关系和获取报表中所有实体类型的记录中的数据,这需要并集所有。

我的理解是,大表的性能比小表的性能慢,如果我错了,请纠正。

请对此进行一些说明,并建议我应该如何进行。

谢谢

mysql database erp rdbms database-design

2
推荐指数
2
解决办法
1877
查看次数