问题标签 [mysql-5.6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 使用云 SQL 从 MySQL 5.5 迁移到 GAE:Microtime 支持?
背景:
我有一个使用 PHP 5.4.10 和 MySQL 5.5在Laravel 4上运行的项目
由于对性能的要求很高,该项目的大部分业务逻辑都在存储的 MySQL 过程中,并且出于调试和日志记录的目的,每个过程都存储了自己的运行时 - 它开始执行的毫秒数。
由于 MySQL 5.5 不支持毫秒,我最终编译了自己的 UDF,它允许我准确地以毫秒存储当前的 unix 时间戳。(参见 Github 上的 MICROTIME)。
如果为写入日志的过程设置了标志,则该运行时值可用于:
计算程序在写入日志时运行了多长时间。例子:
INSERT INTO Log(call_time,run_time,message) VALUES(@t, MICROTIME()-@t, @m)
为过程的每个实例分组日志条目(因为一个过程的多个实例同时运行)。例子:
SELECT * FROM Log ORDER BY call_time
基本上,Microtime 支持对于这个项目至关重要。
问题:
随着谷歌应用引擎的 PHP 版本在去年已经成熟很多,我正在考虑使用谷歌云 SQL 将该项目转移到 GAE 上。
从我读过的内容来看,谷歌云 SQL 似乎是:
- 不允许 UDF 的
- 基于 MySQL 5.5
那是对的吗?我可以在 Google Cloud SQL 上使用任何潜在的解决方法来允许我使用微秒吗?
例如,MySQL 5.6 似乎提供微秒支持。有什么方法可以在 Google Cloud SQL 上使用 MySQL 5.6?
geocoding - 为什么 Spatial Datatype 不能保持超过 15 位的精度,因为它使用 Double 来保存数据?
我正在尝试将 Geo CoOrdinates 存储在 mysql 数据库服务器中。如果我的坐标精度值超过 15 位,则该值会四舍五入并存储在数据库中。我相信这是因为这个文档而发生的。
但有趣的信息是 当我尝试使用双数据类型存储相同的坐标时。我可以存储高达 17 位的精度。
空间数据类型还将每个坐标存储为内部的双精度值。那么为什么 Spatial 数据类型不能存储超过 15 位的精度呢?我必须存储高达 20 位的精度现在该怎么办?
java - 升级到 MySQL 5.6 并在重新运行单元测试时恢复数据库后的 java.io.EOFException
我有一个 Java 应用程序,我们升级到 MySQL 5.6。当我恢复以前使用 mysqldump 转储的数据库mysql <
并尝试在 IntelliJ 中重新运行单元测试时,我收到以下异常 -
我可以使用 mysql 命令行客户端成功连接。
MySQL 是 5.6.16 自制软件。
JDBC 驱动程序是 MySQL Connector/J 5.1.29。
操作系统是 OS X 10.9.2 (13C64)。
如果我重新启动 MySQL,这可以解决问题。我正在寻找这个问题的答案是如何避免这种重启。谢谢。
mysql-5.6 - 不明白为什么会出现错误 1215:无法添加外键
我在创建数据库表时遇到问题。我做过类似的事情:
CREATE TABLE STREAM(
STREAM_ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
STREAM_NAME VARCHAR(100) NOT NULL,
TOTAL_SEM INT NOT NULL
)Engine=InnoDB;
接着:
CREATE TABLE SEMESTER(
STREAM_ID INT AUTO_INCREMENT NOT NULL,
SEMESTER INT NOT NULL,
SUB_NAME VARCHAR(100) NOT NULL,
SUB_CODE VARCHAR(100) NOT NULL,
PRIMARY KEY(STREAM_ID,SUB_CODE),
CONSTRAINT STUDENT_STREAM_FK5 FOREIGN KEY (STREAM_ID) REFERENCES STREAM(STREAM_ID)
)Engine=InnoDB;
它很好地创建了数据库表。但是当我创建另一个引用SUB_CODE
inSEMESTER
表的表时,它给了我错误:1215:
CREATE TABLE SUBJECT(
Q_NO INT AUTO_INCREMENT NOT NULL,
SUB_CODE VARCHAR(100) NOT NULL,
SEMESTER VARCHAR(100) NOT NULL,
SET_NO INT NOT NULL,
Q_TYPE VARCHAR(100) NOT NULL,
QUESTION VARCHAR(200) NOT NULL,
CHOICE_1 VARCHAR(30),
CHOICE_2 VARCHAR(30),
CHOICE_3 VARCHAR(30),
CHOICE_4 VARCHAR(30),
CORRECT VARCHAR(30),
ANSWER VARCHAR(30),
MARKS FLOAT,
PRIMARY KEY(Q_NO,SUB_CODE),
CONSTRAINT STUDENT_SEMESTER_FK6 FOREIGN KEY (SUB_CODE) REFERENCES SEMESTER(SUB_CODE)
)Engine=InnoDB;
在这种情况下,在创建SUBJECT
表时它会给出错误:1215。我不明白,我已经SEMESTER
以与我试图创建的方式相同的方式创建了表SUBJECT
,那么为什么它不起作用?我正在使用 MySQL 服务器 5.6。
请帮忙!提前致谢。
mysql - 为什么子查询比连接快?
减缓:
快速地
架构:
mysql - MySQL 使用 JOIN 选择自定义字段
有两个表,一个包含文章,另一个包含那些文章的自定义字段,其中一篇文章与许多自定义字段的关系。
为每个字段进行连接以一次性获取全部数据的效率如何?
还是有更好的方法来允许在 where 子句中使用自定义字段?
我正在考虑这个或更改表模式以适应自定义字段。
mysql-5.6 - 如何解决此错误字段“STATE_REGION”在 MySQl 5.6 中没有默认值
我有如下错误
字段'STATE_REGION' - 字段名称在 MySQL 5.6 中没有默认值。
我通过更改sql_mode = '';
以前版本的 MySQL解决了这个问题
但在 MySQL 5.6 中失败了
如何在 MySQL 5.6 中解决此问题。请帮助任何帮助非常感谢。
mysql - 服务器退出而不更新 PID 文件 - Ubuntu 12.04 服务器
我按照这个链接升级我的mysql,https://rtcamp.com/tutorials/mysql/mysql-5-6-ubuntu-12-04/
文章ubuntu是x64,但是我的ubuntu是x32,所以我把下载链接改成http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.16-debian6.0-i686.deb
当我完成安装时,当我键入以下命令启动 mysql 时:$ service mysql.server start
它提醒我:
当我尝试打字service mysql-server restart
时,它提醒我有点恭敬:
有一些东西可能会有所帮助:
- my.cnf 位于 /etc/mysql/my.cnf
ps aux | grep mysql
ps aux | grep mysql
再次输入时会显示不同的PID
my.cnf 文件有以下行
mysql - Performance between CREATE TEMP TABLE AS vs INSERT INTO SELECT
I was wondering is there a performance difference between:
then
vs
My concern was, the lookup_table is accessed very often by different users and when I run query 2, most of the users need to wait longer to be able to retrieve their result. What I was thinking was to write the data into a temporary table then write it to dest_table afterwards . Im just not sure if writing into a temp table with give a difference performance compared to writing it directly to the destination table. Im using mysql 5.6.
The reason why I need to write data from lookup_table to dest_table is because I need to create a report from it. Seeing how complex the query from lookup_table is makes it very difficult to create a report so I decided to move those data to a single table then just make a report from it.
innodb - 空 UPDATE 方式比相应的 SELECT 慢
我正在使用 MySQL 5.1.73 和 InnoDB
我有一个非常慢的 UPDATE 查询(大约 10 秒),其中更改的行数(通常)为零(如果有几行更改,则需要大约相同的时间):
但是,相应的 SELECT 相当快:
如您所见,这是(应该是?)一个索引查询,在一个不太大的数据库上(大约 9000 行,虽然它确实包含一些 blob,所以总数据库大小约为 800MB)。
问题是:
- 为什么更新这么慢?
- 我该如何调试它?
- 我怎样才能加快速度?
更新:我在使用 MySQL 5.5.35(Debian wheezy 默认)的不同服务器上尝试了相同的数据库。查询还是快,更新还是慢,更新还是没有解释……我可能会尝试从dotdeb升级到mysql 5.6,或者试试mariadb。:)
更新 2:我尝试了不同的行格式(动态和压缩),但也没有(明显)更快。
更新3:我更新到MySQL 5.6.17(来自dotdeb),性能大体相同,但我终于得到了更新的解释:
这只证实了一直以来可能被怀疑的东西:UPDATE 没有使用任何索引。所以问题仍然存在:为什么?
我将尝试创建一个产生这种行为的最小示例;也许在这个过程中,我会找到一些答案......