小编And*_*dri的帖子

分区将如何影响我当前在 MySQL 中的查询?什么时候对我的表进行分区?

我有一个包含 150 万行、39 列的表,包含大约 2 年的销售数据,并且每天都在增长。在我们将其移动到新服务器之前我没有遇到任何问题,我们现在的内存可能更少。

目前查询需要很长时间。有人建议对导致大多数性能问题的大表进行分区,但我有几个问题。

  1. 对我描述的表进行分区是否明智,是否可能提高其性能?
  2. 如果我对它进行分区,我是否必须对当前的 INSERT 或 SELECT 语句进行更改,或者它们会继续以相同的方式工作吗?
  3. 分区执行时间是否较长?我担心由于性能缓慢,中途会发生一些事情,我会丢失数据。

  4. 我应该把它分成几年还是几个月?(我们通常会查看一个月内的数字,但有时我们会花几周或几年的时间)。我还应该对列进行分区吗?(我们有一些很少或从不使用的列,但我们稍后可能想使用它们)

mysql partitioning

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

如何在PHP中以易于阅读的方式回显我不知道的变量

只是有一个简单的问题.我想我知道答案,但我希望不是.

我希望能够回显一个我不知道是否设置的变量.所以我想要一个默认变量,如果它没有设置,我不想检查它是否先设置.

所以这是一个例子:

我有一个$变量,我不知道是否设置.

然后

echo "This is my number: " . $variable;
Run Code Online (Sandbox Code Playgroud)

如果$ variable设置为5,我希望它打印"这是我的号码:5",如果没有设置,我希望它打印"这是我的号码:0".

我知道我可以这样做:

echo "This is my number: " . ($variable? : 0);
Run Code Online (Sandbox Code Playgroud)

但后来我仍然注意到$ variable是未定义的,即使echo正确显示.

我也可以这样做

if (!isset($variable)) 
{
  $variable = 0);
}
echo "This is my number: " . $variable;
Run Code Online (Sandbox Code Playgroud)

但是,如果我这么做的话,那就是代码太多了.

php variables isset

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

如何比较MySQL格式为dd.mm.yyyy的日期(varchar)?

我希望能够在MySQL数据库中选择两个日期之间的所有日期,其中日期是varchar,格式为dd.mm.yyyy.

Database
date (varchar) | value
------------------------
31.01.2018     | 123
------------------------
28.02.2018     | 456
Run Code Online (Sandbox Code Playgroud)

这不起作用

Query
SELECT date,value from Database WHERE date BETWEEN '2018-01-01' AND '2018-01-31'
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用WHERE date LIKE '%.01.2018'整整几个月,但这还不够.

我可以在PHP中执行此操作,但不想这样做,因为这将花费太长时间.我想我可以使用这个CAST功能,但不知道如何.

在MySQL中执行此操作的最佳方法是什么?

mysql varchar casting date

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

标签 统计

mysql ×2

casting ×1

date ×1

isset ×1

partitioning ×1

php ×1

varchar ×1

variables ×1