草庐IT

php - 从 PHP 调用的查询中的 MySQL (MariaDB) 执行超时

我正在针对地理定位搜索系统对我的数据库进行压力测试。它已经在这样一个方框long/lat索引系统中内置了很多优化,可以在执行弧距计算之前缩小搜索范围。我的目标是在一张table上为10,000,000名用户提供服务。目前,根据年龄、性别等其他条件,我的查询时间在0.1到0.01秒之间。这是针对均匀分布在英国的10,000,000名用户。我有一个LIMIT条件,因为我需要向用户显示X个人,其中X可以在16到40之间。问题是当没有其他用户/少数用户匹配时,查询可能需要很长时间,因为它无法快速达到LIMIT,并且可能必须扫描400,000行。我可以看看其他优化技术,但我的问题是:有没有办法让

mysql - SQL:如何更改行顺序位置

假设我有这张表:IDNameposition11Kate112Frank213Anna314Peter415James516Michael6给出当前ID和目标位置,我需要想出一种重新排序的有效方法。我想在我的服务器端语言中混合一些SQL,例如。(向上移动弗兰克):if(newPosition>oldPosition){UPDATEpeopleSETposition=position-1WHERElistId=1ANDposition其中一个问题是,如果当前位置为0,它将变为负值。关于如何重新排列行的任何想法?编辑:作为我正在尝试做的事情的一个例子,假设我想将Frank(位置=2)向下移

mysql - MySQL 和 MariaDB 之间的不兼容性 - FROM 子句中的子查询。

MariaDB声称是MySQL的直接替代品,但是MySQLdocs指出此功能自5.7.7版起可用:BeforeMySQL5.7.7,theSELECTstatementcannotcontainasubqueryintheFROMclause.MariaDBknowledgebase说这是不允许的:TheSELECTstatementcannotcontainasubqueryintheFROMclause.但是,MariaDB'scompatibilitypage中没有列出这个.我做了一些测试,似乎在MariaDB中不支持这种查询,但MariaDB文档中的冲突信息让我感到困惑。那么,

mysql - MariaDB 上的 "GROUP BY"与 MySQL 的行为不同

我多次被告知相同的查询MariaDB将像在MySQL上一样工作......直到我遇到这个问题。最近,我试图将一个应用程序从MySQL(InnoDB)克隆到MariaDB(XtraDB)。尽管MariaDB无需更改任何内容即可运行MySQL查询,但我惊讶地发现相同的查询在两个平台上的行为实际上完全不同,尤其是在ORDERBY和GROUPBY中。举个例子:MyTable=======+----+----------+---------------------+-----------+|id|parentId|creationDate|name|+----+----------+------

php - MySQL "wait_timeout"不接受长查询?

我正在尝试测试似乎被忽略的wait_timeoutMySQL设置。PHP脚本:query($query)ordie($query.''.$sql->error);$row=$result->fetch_object();echo"wait_timeout=".$row->Value."\n";$time_start=microtime_float();$query="SELECTSLEEP(2)FROMmysql.user;";$sql->query($query)ordie($query.''.$sql->error);$time_end=microtime_float();$tim

python - Django 和 Python 3 使用哪个数据库?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我正在使用Django和Python3.3.3编写我的第一个应用程序。我一直在其他项目中使用MySQL,但Python3.X和MySQL似乎存在一些问题:Atthetimeofwriting,thelatestreleaseofMySQ

mysql - MariaDB Galera集群设置问题

我正在尝试启动并运行mariadb集群,但它对我来说并不奏效。现在我在64位红帽ES6机器上使用MariaDBGalera5.5.36。我在这里通过这个repo安装了mariadb:[mariadb]name=MariaDBbaseurl=http://yum.mariadb.org/5.5-galera/rhel6-amd64/gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1在server.conf中,我在服务器1中有以下内容:[mariadb]log_error=/var/log/mariadb.logquer

mysql - MySQL/MariaDB查询在某些表条件下慢的可能原因

在某些情况下,我遇到了一个缓慢查询的奇怪问题:我做了一些测试,并能够将问题隔离到一个名为products_description的表(所有表都是MyISAM)。起初我注意到当这个表是新的(即刚刚导入的)时,查询总是执行得很快(~0.3s)。但是,如果我在这个特定的表上执行任何这些操作,在任何时候(即使是在导入它之后):CHECK、OPTIMIZE、ANALYZE或REPAIR,查询突然减慢x10倍(大约4.5秒)并且一直保持缓慢。请注意,我在运行查询时强制不缓存以确保结果正确。只有当我在该表上执行以下任何操作时,我才能恢复性能:1)DROP表并再次导入。或2)ALTER该表的以下任何一

mysql - 无法使用 MySQL Workbench 访问 Mariadb (Centos 7)

我已经在Centos7上安装了Mariadb,我正在尝试使用MYSQLWorkbench访问它。我做了以下事情:启动MariaDB执行以下命令:systemctlstartmariadb.service自动启动MariaDB执行以下命令:systemctlenablemariadb.service启动MariaDB后(只执行一次),执行以下命令:/usr/bin/mysql_secure_installation运行时我删除了匿名用户登录我们还需要更改端口:/etc/my.cnf.d/server.cnf#Mariadb网络设置[mysqld]#commentoutthebindadd

java - INSERT..RETURNING 在 JOOQ 中不起作用

我有一个MariaDB数据库,我想在我的表users中插入一行。它有一个生成的id,我想在插入后获取它。我看过this但它对我不起作用:publicIntegeraddNewUser(Stringname){Recordrecord=context.insertInto(table("users"),field("name")).values(name).returning(field("id")).fetchOne();returnrecord.into(Integer.class);}插入了新行,但record始终为null。我没有使用JOOQ代码生成。