问题标签 [mysql-5.5]
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 - 在我们的应用程序中使用 MySQL PASSWORD 函数
在 MySQL函数文档中PASSWORD
:
MySQL Server 中的身份验证系统使用 PASSWORD() 函数;您不应该在自己的应用程序中使用它。为此,请考虑使用 MD5() 或 SHA1()。
为什么我们不应该在我们的应用程序中使用这个函数?
mysql - Sql 查询对于我的情况
我有下面提到的格式的表格
我想查找排序不连续的用户 ID 列表。即 userid2(没有 2 的排序)和 userid3(没有 1 的排序)。
请帮忙
mysql - 显式日期/日期时间转换
在BETWEEN
文档描述(http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#operator_between)中,我注意到一个我无法完全理解的奇怪表达:
为了在将 BETWEEN 与日期或时间值一起使用时获得最佳结果,请使用 CAST() 将值显式转换为所需的数据类型。示例:如果将 DATETIME 与两个 DATE 值进行比较,请将 DATE 值转换为 DATETIME 值。如果在与 DATE 的比较中使用字符串常量(例如 '2001-1-1'),请将字符串转换为 DATE。
所以我有以下问题:
任何人都可以提供一个真正必要的例子(并解释)以及何时
cast
会显着改变结果或性能。假设我们使用 mysql 定义的许多日期文字之一(http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html)。为简单起见,让它采用YYYY-MM-DD
('2013-07-26'
) 格式(带有您喜欢的任何日期)谁能澄清“最佳结果”是什么意思?结果要么是预期的,要么不是预期的——在这种情况下,什么是“最好的”?
PS:目标mysql版本是最新的5.5可用和更新。
PPS:说清楚:
- 问题假设我们使用日期时间/日期兼容的列,而不是 varchars 等
- 问题是关于扩大类型,而不是关于缩小
mysql - Slow query after upgrade mysql from 5.5 to 5.6
We're upgrading mysql from 5.5 to 5.6 and some queries are deadly slow now.
Queries that took 0.005 seconds before are now taking 49 seconds.
Queries on 5.6 are skipping the indexes, it seems:
But are not being skipped on 5.5:
Both DBs were created from the same mysql dump.
Are these indexes not being constructed when I do the import on 5.6? How do I force the index creation?
The query:
Edit: Removed the schema
mysql - mysql查询中计数不同的原因是什么?
当我使用子句运行以下查询或指定子查询中的SQL_CALC_FOUND_ROWS
所有颜色时,我得到的记录计数为. 但是当我单独做每种颜色时,我得到的加起来是. 额外的 50 行从何而来?我原以为如果我单独做然后把它们加起来,我会得到,但我得到了。我是否正在查看 IN 子句的工作方式不正确?我更喜欢使用而不是因为我发现要慢得多(+3 秒)RED,BLUE,YELLOW
IN
198
COUNT
248 (72 + 59 + 118)
198
248
COUNT
SQL_CALC_FOUND_ROWS
SQL_CALC_FOUND_ROWS
以下是一些统计数据:
mysql - 推荐的 CHARSET/COLLATION 用于几乎每个字符
我不知道这是否可能,但是否存在任何CHARSET/COLLATION
拥有世界上几乎所有角色的人?我的意思是例如:á, é, í, ó, ú, ñ
西班牙语,法语和葡萄牙语的字符等等?对此有何建议?你们是如何在 DB 建模级别处理多语言网站的?
PS:如果不是我的道歉,不知道这是不是问这个问题的正确地方
mysql - MySQL doesn't handle ENUM types error
I have this script:
I try this two queries:
And it works but in the second insert it leaves account_type
empty (I think this goes to NULL) :-O why if I'm setting SQL_MODE
as STRICT_ALL_TABLES? Should not the ENUM
field gets the first value instead of leave field NULL
? I'm using MySQL 5.5.31 on Debian
mysql - SELECT + INSERT + 查询缓存 = MySQL 锁定
MySQL 服务器似乎不断锁定并停止响应某些类型的查询,最终(在几分钟没有响应后)放弃错误“ MySQL 服务器已消失”,然后再次挂起下一组查询,再次然后再次。服务器设置为从属服务器,从主服务器复制到dbA
,主要是 INSERT 语句,每秒大约 5-10 行。一个基于 PHP 的应用程序正在服务器上运行,它每 5-10 秒读取一次新复制的数据,对其进行处理并将结果存储在一个单独的数据库中(INSERT ON DUPLICATE KEY UPDATE)dbB
. 所有表都使用 MyISAM 引擎。Web 应用程序为用户显示后处理的数据。在基本术语中,所涉及的处理步骤是将每秒分辨率的时间序列数据压缩为每分钟、每小时和每天的分辨率。
当 MySQL 锁定时,我执行 SHOW PROCESSLIST 命令并看到以下查询:
“时间”列将保持同步,直到达到某种查询等待超时,然后我们得到错误“ MySQL 服务器已消失”。在 5-10 秒内,将再次处理新数据,同样的锁定将发生。查询 #1 是复制过程。查询#2 是后处理数据的更新。查询 #3 正在流式传输(无缓冲)新复制的数据以进行处理。最终产生错误“ MySQL server has gone away ”的是查询#3,大概是因为它是第一个超时的。
它看起来像某种死锁,但我不明白为什么。在一个数据库中同时进行 SELECT 和 INSERT 似乎会导致死锁,并在另一个数据库中通过 INSERT ON DUPLICATE KEY UPDATE 更新查询缓存。如果我关闭复制或查询缓存,则不会发生锁定。平台:Debian 7、MySQL 5.5.31、PHP 5.4.4 - 所有标准包。值得注意的是,几乎相同的应用程序目前在Debian 6、MySQL 5.1.66、PHP 5.3.3上运行良好,唯一的区别在于后处理数据是使用单独的 INSERT 和 UPDATE 查询而不是 INSERT ON 存储的重复密钥更新。
MySQL 配置(在 Debian 6 和 7 机器上):
任何关于为什么会发生这种锁定的提示将不胜感激!
mysql - SQLQuery 列填充为 1 而不是 0
请考虑以下代码进行测试:
我对代码所做的简要说明:
我为每个连接创建了一个视图,即第一个、第二个、第三个等,如下所示:(我没有选择 UNION 来组合所有查询的原因是因为我希望结果按列显示而不是比行。)
对于第二个、第三个和所有其他事件也是如此。
这是我从视图中检索结果的方式:
关于数据库中发生的事情的简要说明:
我正在研究与上述相同类型的大型数据库。例如,我从数据库中选择了以下日期范围:2013-07-01 到 2013-08-01
现在,就第一个和第二个事件而言,我在“事件”列下为每个日期列出了“第一个”和“第二个”值。更准确地说,如果我使用 COUNT() 函数对其进行测试,我可以看到如下结果:
第一次连接:
第二个事件也是如此。但是,对于“第三个”事件,情况就不一样了。我在“事件”列下仅列出了几个日期的“第三个”事件,例如 2013-07-02 和 2013-07-03,我应该看到以下内容输出:
但我没有得到上述输出。相反,除 2013-07-02 和 2013-07-03 之外的所有其他日期值都在“第三个”事件列下填充值 1。我可以知道为什么吗?
mysql - 带有限定标识符的 where 子句中的不明确列
我收到以下错误:
数据库:MySQL 5.5.30(包含架构中的所有表和列)
当我剥离“AND cam.id IN ()”部分时,它会执行。
为什么会发生这种情况,尽管我已经完全限定了该列(即“cam.id”而不是“id”)?
我尝试过的事情:
- 删除“AND cam.id”子句 --> 语句执行没有错误
- 使用“campaigns.id”而不是“cam.id”-> 错误 1054 /“where 子句中的未知列”
- 更新它可以工作,如果我只有几个(比如 5 个)项目
IN clause