Questions tagged «mysql»

MySQL的所有版本(不是Microsoft SQL Server)。如果与此问题相关,还请添加特定于版本的标记,例如mysql-5.7。

2
视图是否需要自己的外键约束?
免责声明:我是程序员,而不是DBA,所以请耐心等待... 我有一种观点,我只是将2个实体映射在一起。我必须在几个不同的表之间进行联接才能得到: CREATE OR REPLACE VIEW V_SCREENING_GROUP_SITES AS ( SELECT SG.SCREENING_GROUP_ID, V.SITE_ID FROM SCREENING_GROUP SG, VISIT V, VISIT_DATE VD WHERE VD.VISIT_ID = V.VISIT_ID AND V.SCREENING_GROUP_ID = SG.SCREENING_GROUP_ID); 以上仅是上下文,请不要为此担心太多。我需要知道的是如何使新的V_SCREENING_GROUP_SITES视图中的字段(SCREENING_GROUP_ID和SITE_ID)充当SCREENING_GROUP和SITE表的外键。还是有关系吗? 如果是一张桌子,我会做: ALTER TABLE V_SCREENING_GROUP_SITES ADD CONSTRAINT FK_SCREENING_GROUP_ID FOREIGN KEY (SCREENING_GROUP_ID) REFERENCES SCREENING_GROUP.SCREENING_GROUP_ID; ... 但是,由于这种观点显然行不通。我找不到可用于设置FK的ALTER VIEW语法。我该怎么办? (这是一个MySQL数据库)

2
如何在MySQL中找到列的中间值?
我只能想象使用两个数据库查询来执行此操作。第一个查找数据库中的行数,第二个查找ORDER BY我感兴趣的列上的一个,LIMIT X, 1其中X是行数的一半。 是否有一种简单的方法可以只执行一个查询? 现在,我在计算中使用了平均值,但我认为平均值会更好。值没有上限,并且从下方以0为界。 编辑:是的,我的意思是说“中位数”,但脑部有误并搜索了“均值”。我现在在stackoverflow找到了答案
10 mysql 

2
为多种用户类型及其联系信息建模数据库结构
我正在设计一个数据库,该数据库将存储各种类型的用户。他们主要(但不是唯一)是演员,导演和作家。当前只有四种相关的用户类型。这个数字可能会有所增加,但是可能性很小-在这种情况下,这个数字很小。 该计划是要有一个users表,几乎只负责登录该网站(name,email以及一password列和另外两列,例如它们是否已被批准,以及updated_at),以及每个用户类型的附加表有自己独特的一组列。例如,只有演员才会有种族栏,只有导演会有传记栏,只有作家才需要提供位置。但是,由于我以前没有管理过这种复杂的数据库,所以我想知道如何组织几个方面: 首先,用户可以是以上类型中的任何一种,也可以是任何组合。因此,我了解到我需要director_user带有director_id和user_id列的表(例如)。这样是否足以按角色类型过滤所有用户? 其次,大多数用户会选择Twitter个人资料和电话号码。并且所有演员必须为其其他任何在线演员个人资料至少包含一个网址;目前可以包含三个,但是这个数目可能会增加。我是否认为每种可能的个人资料/联系方式的单独表格是组织数据的最佳方式,对吗?

1
InnoDB:由于缺少MLOG_CHECKPOINT而忽略重做日志
我正在使用mysql版本5.7.14(在OS X El Capitan上进行自制安装)。当mysql运行时,我的系统无法正常关闭;当我尝试启动mysql守护程序时,重新启动后,出现以下错误。 2017-02-07T10:11:42.224506Z 0 [Note] mysqld (mysqld 5.7.14) starting as process 18234 ... 2017-02-07T10:11:42.227375Z 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive 2017-02-07T10:11:42.228809Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-02-07T10:11:42.228821Z 0 [Note] InnoDB: Uses event mutexes 2017-02-07T10:11:42.228826Z 0 [Note] InnoDB: …

4
错误1236-“在二进制日志索引文件中找不到第一个日志文件名”
我们的设置: 大师:MariaDB 10.0.21 从站:MariaDB 10.0.17 复制工作一直很好,直到最近,此时必须从转储中还原从数据库。我执行了所有必要的步骤:转储主数据库,将转储转移到从数据库,删除旧数据库,执行转储以还原数据库,执行适当的CHANGE MASTER命令,最后执行START SLAVE。 我收到错误: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file' 从属服务器需要主服务器提供的第一个日志文件是mysql-bin.000289。我可以看到这存在于主服务器上: 我还可以看到,主数据库上的二进制日志索引似乎包含此日志文件的条目: 复制仍然无法正常进行-我一直收到相同的错误。我没有主意-接下来应该检查什么? 更新:SHOW SLAVE STATUS\G根据要求输出: MariaDB [(none)]> SHOW SLAVE STATUS\G -------------- SHOW SLAVE STATUS -------------- *************************** …

3
批量删除后,我需要重新索引mysql表吗?
我在MySQL中有一张表,每秒钟都有很多INSERT和SELECT。每天都会一次删除一些较旧的数据。删除后是否需要重新索引表?我想提高性能。有人可以建议一些技巧吗?使用“ innodb”作为存储引擎。我需要更改吗?我认为并发插入和选择更好。请提出您的建议。我需要重新编制索引吗? 提前致谢..

3
计算列中的空值和非空值
如何在MySQL的同一列上计算和检索null和not null? mytable --------------------------------------------------- id | name | visited | registDate | --------------------------------------------------- 1 | george | NULL | 2014-04-01 | --------------------------------------------------- 2 | Thomas | NULL | 2014-04-15 | --------------------------------------------------- 3 | Wilfred | 1 | 2014-04-24 | --------------------------------------------------- 4 | paul | 1 | 2014-04-10 | --------------------------------------------------- 5 …
10 mysql  count  null 

1
是否可以避免文件排序?
是否可以在以下SELECT查询中避免使用“使用临时”和“使用文件排序”?我想不通一种方法。 我尝试为top_expire和program添加索引,但没有用ORDER BY查询花费1秒以上的时间,而在localhost上仅0.003秒 询问 SELECT ad.*, p.link FROM (SELECT ad.* FROM mod_ad ad JOIN mod_ad_auta auta ON ad.id = auta.ad_id WHERE ad.active != 0 AND ad.usr_active != 0 AND ad.expire > 1371151608 AND ad.cat_id = '1' AND ad.price <= '10000' AND auta.rocnik BETWEEN '1950' AND '2013' AND auta.km BETWEEN '0' …

1
MySQL:大列的唯一约束
我正在尝试创建一个InnoDB表,该表包含VARCHAR最多可容纳3071个字符的列。我想UNIQUE对该列的数据施加约束。 MySQL似乎使用索引来强制执行约束。在InnoDB中,索引大小似乎被限制为767个字节-不足以VARCHAR(3071)容纳存储数据的列。 关于如何在不影响最大数据长度或使用InnoDB的情况下如何使数据库强制数据唯一性的想法?


4
通过MySQL获取半径拉链时出现问题
我有一个邮政编码表,其中包括每个邮政编码的中心纬度,经度。我用它来获取从任意点到给定英里半径内的邮政编码列表。 在我看来,仅仅是因为拉链的中心点不在给定的半径内,并不意味着拉链本身不在半径内。 我用自己的超高级艺术技巧来说明这一点: 绿色条纹斑点表示邮政编码A,B和C。 红色污点是每个邮政编码的地理中心 紫红色的点是目标位置,并且.. 块状蓝色圆圈距离目标位置1英里半径 如果我查询距离粉红色污迹1英里半径内的所有邮政编码,则将返回邮政编码B和C,因为邮政编码A的中心点不在1英里半径内,即使粉红色污迹本身显然在邮政编码A中。 SELECT *, p.distance_unit * DEGREES(ACOS(COS(RADIANS(p.latpoint)) * COS(RADIANS(z.y)) * COS(RADIANS(p.longpoint) - RADIANS(z.x)) + SIN(RADIANS(p.latpoint)) * SIN(RADIANS(z.y)))) AS dist FROM standard_zip AS z JOIN ( /* these are the query parameters */ SELECT $lat AS latpoint, $lng AS longpoint, $miles AS radius, 69 AS …

2
数据仓库:如何查询每日快照?
我有一些不是时间序列的数据库快照。例如: 快照第一天: +----+---------------+------------+------------+ | ID | Title | Category | Date | +----+---------------+------------+------------+ | 1 | My First Post | helloworld | 2015-01-01 | +----+---------------+------------+------------+ 快照第2天(今天添加了新帖子): +----+----------------+------------+------------+ | ID | Title | Category | Date | +----+----------------+------------+------------+ | 1 | My first post | helloworld | 2015-01-01 | | 2 …

2
将MySQL工作台与MySQL容器连接
我从Dockerhub中提取了MySQL容器,它正在我的macbook pro上运行,如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12cd3deaa3f0 mysql:latest "/entrypoint.sh mysql" 47 hours ago Up 10 minutes 3306/tcp mysqldb 然后,我下载了MySQL工作台,并尝试将其与MySQL容器连接,但是它不起作用。显示连接错误。 Your connection attempt failed for user 'root' from your host to server at 192.168.99.102:3306: Can't connect to MySQL server on '192.168.99.102' (60) 来自docker机器的IP是 docker-machine ip default 192.168.99.100 …

2
查看每个用户的活动MySQL连接
我需要一个查询,该查询将为我提供某个用户到某个数据库的活动或开放连接数。我一直在寻找时间,到目前为止却一无所获。我很近,所以这是我尝试过的。 SHOW STATUS WHERE `variable_name` = 'Threads_connected'; SHOW STATUS LIKE '%onn%'; SELECT * FROM information_schema.processlist WHERE USER='database_user'; 我在一家网络托管公司工作,我们的一位客户一直在竭尽所能max_user_connections,因此在进行故障排除时,由于他不是共享服务器,我为什么现在需要知道他的用户正在使用多少个连接,因此进行故障排除。我目前正在使用MySQL(InnoDB)5.5.36版。任何帮助将不胜感激!

2
MySQL:delete…where..in()vs delete..from..join,并使用subselect锁定删除表
免责声明:请原谅我缺乏数据库内部知识。它去了: 我们运行的应用程序(不是我们编写的)在数据库的定期清理作业中存在很大的性能问题。查询如下所示: delete from VARIABLE_SUBSTITUTION where BUILDRESULTSUMMARY_ID in ( select BUILDRESULTSUMMARY_ID from BUILDRESULTSUMMARY where BUILDRESULTSUMMARY.BUILD_KEY = "BAM-1"); 直截了当,易于阅读和标准SQL。但不幸的是非常缓慢。对查询进行解释说明VARIABLE_SUBSTITUTION.BUILDRESULTSUMMARY_ID未使用现有索引on : mysql> explain delete from VARIABLE_SUBSTITUTION where BUILDRESULTSUMMARY_ID in ( -> select BUILDRESULTSUMMARY_ID from BUILDRESULTSUMMARY -> where BUILDRESULTSUMMARY.BUILD_KEY = "BAM-1"); | id | select_type | table | type | possible_keys | key …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.