我写了一个统计/跟踪平台来监控我的网站活动。对于每个用户,都会在表中创建一个条目,其中包含一些相关信息: IP、参考资料、GeoLocate国家代码等。
该数据库包含超过7 7MM的结果,大小约为4 4GB。
现在,我有一个脚本,它必须做总和查询,以获得一个定义的时间间隔($from_date和$to_date)的印象,点击量等数字。
$query = "SELECT COUNT(ip) as tot, sum(clicked=0) as a0, sum(clicked=1) as a1, sum(converted=0) as a2, sum(converted=1) as a3 F
我在SSMS和执行计划中运行以下查询,建议在不属于where子句的列上添加索引。我计划在where子句(OID和TransactionDate)中使用的两列上添加索引。
SELECT
[OID] , //this is not a PK. Primary key column is not a part of sql script
[CustomerNum] ,
[Amount] ,
[TransactionDate] ,
[CreatedDate]
FROM [dbo].[Transaction]
我不知道,为什么在innodb表上删除需要大约30秒
表有4mil行
ID的索引
针对孩子的索引
(这只是索引,没有主表,也没有唯一表,因为表是分区的)表是分区的
delete from my_table where id = 'xxx' and kid = 'ds54f5sad6w5' limit 1
在慢日志中是查询时间39秒锁定时间36秒检查行96879
问题出在磁盘中(使用ssd)
解释select sql_no_cache * from my_table WHERE id = '1663903‘AND kid = '84d4af871