小编Ric*_*ith的帖子

来自DateTime的朱利安日

是否有更好的方法将DateTime对象转换为Julian日数,而不是像这样:

$jd = GregorianToJD( $dt->format('n'), $dt->format('j'), $dt->format('Y') );
Run Code Online (Sandbox Code Playgroud)

我有点惊讶没有直接执行它的函数或者打印它的格式说明符.我错过了一些明显的东西吗

编辑:下面的许多(有点讽刺)回复似乎假设朱利安日编号与长期过时的朱利安日历有某种关系.事实并非如此.在儒略日数是从一个比较随意的时代编号天最常见的方式之一.它的主要用途是天文学,它是识别日期的标准方法.

php

6
推荐指数
1
解决办法
2332
查看次数

删除行会导致 MySQL 中数据库存储空间增加

我刚刚观察到一些非常奇怪的事情,我希望有人可以向我解释。我在 Linux 虚拟服务器上有一个 MySQL 5.5.58 数据库,其中包含 InnoDB 表。其中一张表被调用stats_archive,并且在普通使用中是只写的:它永远不会被读取或删除。其内容纯粹出于法律合规目的而保留一定时间,并且每月的 cronjob 应该删除旧条目。不幸的是,cronjob 默默地失败了,结果导致表变得过大。今天早上我尝试删除数据:

master:~# du -sh /var/lib/mysql
6.3G /var/lib/mysql

master:~# mysql -u root -p

mysql> select count(*) from stats_archive;
+-----------+
|  count(*) |
+-----------+
|  26339050 |
+-----------+
1 row in set (39.40 sec)

mysql> delete from stats_archive where archive_date < '2018-01-01';
Query OK, 24628026 rows affected (7 min 17.61 sec)

master:~# du -sh /var/lib/mysql
7.4G /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,MySQL 使用的存储增长了 1GB 多一点。当我执行此操作时,没有其他明显的数据库活动。删除不是在未提交的事务中完成的,因此数据库不应该仍然保留它以防我回滚。

额外的 1GB 空间(毫不奇怪)已被使用/var/lib/mysql/ibdata1,据我所知,该文件永远不会缩小,所以我一直坚持使用它,直到我可以做一些重大的事情,例如删除所有数据库,从备份恢复和设置innodb_file_per_table=1(它是目前不是)。我会在适当的时候这样做。 …

mysql innodb

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

标签 统计

innodb ×1

mysql ×1

php ×1