草庐IT

while语句

全部标签

mysql:如何提高此 mysql select 语句的性能

我创建了一个sql表,其中我在磁盘上索引了文件。表中有超过100万条记录。我已经为ext和size添加了索引,但是执行这个查询仍然需要一分钟多的时间,它告诉我ext使用的空间量。如何提高此选择的性能?selectext,ROUND((sum(size)/(1073741824)))asTotalSizeGB,count(*)asCountfromfileindexgroupbyextorderbyTotalSizeGBdesc;解释输出:||*id*||*select_type*||*table*||*type*||*possible_keys*||*key*||*key_len*||

mysql - 在 Toad for MySQL 中执行 SELECT 语句时出错

我尝试在Toad中执行简单的SELECT语句时遇到此错误MySql.Data.Types.MySqlConversionExceptionUnabletoconvertMySQLdate/timevaluetoSystem.DateTime有什么问题吗? 最佳答案 这可能意味着以下两个常见问题之一:1)零日期,在MySQL中为0000-00-00。MySQL允许您将它们存储为标记0日期,您甚至可以使用0001-01-01,但并非所有驱动程序或下游程序都可以处理它们。添加到连接字符串AllowZeroDatetime=true;另一种

php - 这个MySQL语句有什么问题?

$my->query("UPDATEideasSETcategory='DocumentOptions',category_id='4',status='Released',status_id='3',title='SupportforiPad',idea='AddsupportforiPad.AllowuploadsanddownloadsviatheanonymousAppforiPhoneandiPad.',release='0',release_date=''WHEREid='225'");$my是一个自定义类,其中包含许多其他mysql命令。为了证明它工作正常,它对以下查询非

mysql - 是否有创建空集的简单 SELECT 语句?

是否有一种简单易行的方法来创建具有指定列但零行的结果表?在集合论中,这称为空集,但由于关系数据库使用多维集,因此该术语并不完全适用。我已经尝试过这两个查询,但都只提供一行而不是零行:选择''作为ID;SELECTnullASID;但我想要的是与此查询相同的结果:SELECTIDFROMsometableWHEREfalse;我正在寻找一种更优雅的方式,因为我不想涉及表,因此查询独立于任何数据库方案。此外,通用查询可能会更快一些(对于这样的查询来说并不重要)。 最佳答案 SELECT"ID"LIMIT0;没有任何真实的表格。请注意,大

mysql - RMySQL,获取错误 - RS-DBI 驱动程序警告 : (error while fetching rows)

我正在使用RMySQL从数据表中获取一些行(该表很大所以我不能在这里发布但基本上包含一堆数字..总共10列和大约12,000行)。当我运行fetch(con,n=-1)时出现以下错误:RS-DBI驱动程序警告:(获取行时出错),服务器仅返回1713行。如果我摆脱了一些正在获取的列,那么这似乎工作正常。有谁知道这可能与什么有关?我什至不知道从哪里开始调试。这可能是服务器端设置吗?我的Rsession有足够的内存(20gigs)。 最佳答案 每一列是一个数字,还是一列数字?即每列有多少字节?我以前遇到过这个问题,当我遇到它时,那是因为我

php - 删除重复项并更新唯一的一个语句中的所有内容?

CREATETABLEhostname_table(idINTNOTNULLAUTO_INCREMENT,hostnameCHAR(65)NOTNULL,interval_avgINT,last_updateDATETIMENOTNULL,numb_updatesINT,PRIMARYKEY(id))我有这张表,我向其中导入了500-600k行数据。我在写入数据库时​​不检查重复项,因为我想知道每个主机有多少重复项,并且我还想知道所述主机名每次更新之间的间隔。hostname_table中的示例值:idhostnameinterval_avglast_updatenumb_update

java - 如何为 SQL 查询转义字符串(没有准备好的语句)

我知道准备语句的威力,但我不能在这里使用它。我通过HTTP而不是通过JDBC将sql查询发送到外部服务器。如何为SQL查询转义字符串?有办法通过JDBC做到这一点吗?或者我应该为此使用自定义类/函数?附注我还连接到其他数据库,因此我可以使用JDBC函数。 最佳答案 这听起来很不安全。如果您通过HTTP发送SQL语句,那么您可能会受到中间人攻击(以及其他攻击)的危害。除此之外,任何普通水平的程序员都可以尝试对您的数据库执行恶意SQL,如果他们看到您正在发送SQL语句。他们可以创建用户、更改密码、检索敏感数据...您确定这是处理问题的最

php - 将 mySQL 插入和更新语句切换为 PDO 准备语句以防止 SQL 注入(inject)

我正在尝试将这些mySQlINSERTINTO和Update语句切换为PDO准备语句(主要是为了防止SQL注入(inject)),但我在正确使用语法方面遇到了一些困难。我目前使用2种类型的INSERT/Update语句:声明1-名称是硬编码的$qry="INSERTINTOcustomer_info(fname,lname,email,user_name,password)VALUES('$_POST[fname]','$_POST[lname]','$_POST[email]','$user_name','".sha1($salt+$_POST['password'])."')";$

php - 如果在循环中使用 MySQLi 准备语句,我什么时候调用 bind_param?

我正在尝试学习如何在MySQLi中使用准备好的语句来插入数据。尽管准备好的语句因其重复高效地执行类似语句的能力而受到称赞,但我似乎找不到使用MySQLi在循环中执行多个语句的示例。我特别对以下内容感到困惑:是在我的循环之前还是在我的循环中调用bind_param是否在调用bind_param之前或之后为我的变量赋值大多数关于预处理语句的教程都使用PDO。使用PDO,可以将一组参数值传递给execute,从而无需调用bindParam。MySQLi不是这种情况。PHP手册mysqli_prepare条目有一个显示以下操作顺序的示例:为变量赋值准备声明绑定(bind)变量执行关闭根据以上判

mysql - 如何在 SQL case 语句中什么都不做?

我需要有条件地更新列,在某些情况下根本不更新它。这是我能想到的最好的方法,但它似乎在ELSE中效率低下,因为它仍在使用列的当前值更新列。有没有更好的方法可以让ELSE完全“什么都不做”。UPDATEmytableSETcol1=CASEWHEN(col1=20)THEN10ELSEcol1END 最佳答案 应用WHERE:UPDATEmytableSETcol1=10WHEREcol1=20但是,如果您的更新更复杂并且您实际上需要多个CASE,您要么硬着头皮省略WHERE,要么必须将所有列添加到您要更新的WHERE:UPDATEmy