我负责使用MySQL 8.0 (InnoDb引擎)建立生产数据库。对于我来说,有必要从一个相当大的表中归档数据(数据文件占硬盘驱动器的大约50% )。
我已经了解到,使用DELETE FROM x WHERE y是一个可怕的想法,并不一定会减少磁盘空间的使用。我的新策略是:
将我需要存档的数据导出到CSV (我之前就这样做过)
选择我希望保存在DB中的数据,并将其放在一个新的表中(使用CREATE TABLE ... SELECT)
将现有表中的PK AI NN BIGINT主键应用到新表中
从当前表中删除非FK索引(以减少磁盘使用率)
将FK索引应用于新表
将非FK索引应用于新表。
重命名旧
我的公司最近进行了一次数据库升级,从Mysql5升级到Mysql8,我们的一些查询已经大大放缓。(从几秒钟到30分钟后超时)。
我唯一的想法是,数据库设置一定有问题,但是如果一些熟悉的人能够查看这个查询,看看是否可以改进它,那就太好了。
select sd.*,
sd.transactionDate as transactionDate,
r.id as resellerId,
max(pa.id) as platformAccountId,
op.paymentTypeId as paymentTypeId,
u
MySQL 5.5 InnoDB是否在磁盘上的内存和表中保留索引?它是否曾经对部分表或整个表执行自己的内存缓存?还是它完全依赖于OS页面缓存(我猜它是这样的,因为Facebook为MySQL构建的SSD缓存是在操作系统级别:https://github.com/facebook/flashcache/上完成的)?Linux默认使用页面缓存的所有可用RAM吗?那么,如果RAM的大小超过了进程使用的表大小+内存,那么当MySQL服务器第一次启动并读取整个表时,它将是从磁盘中读取的,而整个表上的那个点就是RAM中的?那么,如果考虑到相同大小的RAM和数据库,那么使用炼金术数据库(在Redis之上的S
我目前正在使用mysql
我有两个名为person和zim_list_id的表,这两个表都有超过200万行
我想使用zim_list_id表更新person表
我使用的查询是
update person p JOIN zim_list_id z on p.person_id = z.person_id
set p.office_name = z.`Office Name`;
我还在zim_list_id表和person表上创建了索引,我执行的查询是
create index idx_person_office_name on person(`Office_name`);
create ind
在时间单位是任意的情况下,如何根据每单位时间的时间戳列来统计MySQL表中的记录数?
具体地说,我想要计算在给定的时间间隔内,有多少记录的时间戳落入15分钟的存储桶中。我了解如何使用MySQL日期函数在1秒、1分钟、1小时、1天等的存储桶中执行此操作,例如
SELECT YEAR(datefield) Y, MONTH(datefield) M, DAY(datefield) D, COUNT(*) Cnt FROM mytable GROUP BY YEAR(datefield), MONTH(datefield), DAY(datefield)
但是我怎么能按15分钟的时段分组呢?
我在多个站点使用需要使用数据库的企业应用程序。我不是应用程序的开发人员,因此我不能修改应用程序查询数据库的方式。目前,我们正在尝试从MySQL迁移到PostgreSQL,因为碰巧该应用程序在PostgreSQL上运行得更好。
应用程序将数据存储在特定数据库实例中的数千个表中。该应用程序具有内置的迁移功能,可以将数据从一个数据库供应商(例如MySQL)传输到另一个数据库供应商。(例如PostgreSQL)在应用程序的迁移过程中,它对实例中的每个表执行以下两个查询:
SHOW FULL TABLES FROM 'xxx' LIKE 'DATASERIES_yyy'
现在,我在Mysql中有3列的表。
DocId Int
Match_DocId Int
Percentage Match Int
我正在存储文档id和它的几乎重复的文档id和百分比,这表明两个文档的匹配有多紧密。
因此,如果一个文档有100个几乎重复的,那么对于特定的文档,我们有100行。
目前,这个表有10亿多个记录,总共有1400万份文件。我预计文件总数将达到3000万份。这意味着,我的表存储了接近重复的信息,将有超过50亿行,可能会更多。(与总文档集相比,几乎重复的数据呈指数增长)
以下是我的几个问题:
获取mysql表中的所有记录需要花费大量时
我们正在寻找在PHP/MySQL环境中使用尽可能少的资源在数据库中开发搜索例程的最佳方法。
我们处理信息的外部馈送,这些信息具有微妙变化的趋势,或者时不时地具有新的状态值。这意味着我们只能添加自己的数字键并通过传统的SQL搜索进行搜索。
我们正在考虑使用MD5来创建一个唯一的字符串,而不是搜索...
WHERE DATE = '12/12/2012 09:00'
AND TYPE = 'new alert'
AND loc = 'rear door'
AND subtype = 'pir hit'
AND lat = 39