谨慎使用MySQL5.7

Posted on 2016-07-29 12:47:30 | 0 comments | 3962℃ | Mysql

粗大事了

几个月前使用了MySQL的5.7版本,具体版本号是mysql5.7.10,用了几个月没问题。

突然有一天,某位同事告诉,后台数据有点异常。查了一下,惊呆了,果然有问题,并且是mysql查询语句(distinct)的结果有问题导致的。最直观的表现:


SELECT
    count(DISTINCT ooo)
FROM
    xxx
WHERE
    reserve = 1047
-- 结果 81915
SELECT
    count(*)
FROM
    (
        SELECT DISTINCT
            ooo
        FROM
            xxx
        WHERE...

Mysql默认时区修改?关于Mysql时区的二三事

Posted on 2014-12-31 22:37:15 | 0 comments | 9210℃ | Mysql

前言

明天就是2015年了,新年快乐。

最近遇到一个Mysql的时区问题,由于之前环境都是运维搭建的,自己手动搭建也是用脚本安装的,没有做过多的了解,现在遇到一个问题,还是有一点点收获的,下面就让来讲一下的问题解决流程。

问题是UNIXT_TIMESTAMP()出来的时间有问题,知道是时区问题,但当时没有接触过任何Mysql时区方面的东西。解决流程如下

解决流程

查看Mysql中和时区相关的Variable

SHOW VARIABLES LIKE '%time_zone%'

结果:

system_time_zone  UTC
time_zone  SYSTEM

居然不是[我](https://h...

mysql大数据测试-批量生成测试数据

Posted on 2014-08-08 10:21:39 | 2 comments | 4540℃ | Mysql

前言

如果你想在一个项目的研发阶段测试一个mysql表的分区和索引是否合理,但又没有生产环境中的数据进行测试怎么办呢?最近遇到了这个问题,这个时候可以手动生成一些数据来测试。

当然,你可以写个php程序用while去循环插入mysql,但这种方式效率不是很高,们还有更好的办法,那就是mysql的存储过程。

存储过程

下面是的一个生成测试数据的一个mysql函数,适当进行修改,可以用在任意表结构中:


delimiter $$
create procedure insert_test(in counter integer, in time_stamp integer)
  begin
    while...
UP