我可以通过在 fld_date 上添加索引来改进“ORDER BY”吗?
SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;
该查询在 where 子句中使用 (fld1,fld2 - 组合索引) 的索引。由于 ORDER BY 与索引不完全匹配,如果我添加一个带有 fld_date 的索引,它是否有助于提高 ORDER BY fld_date 性能。?
我可以通过在 fld_date 上添加索引来改进“ORDER BY”吗?
SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;
该查询在 where 子句中使用 (fld1,fld2 - 组合索引) 的索引。由于 ORDER BY 与索引不完全匹配,如果我添加一个带有 fld_date 的索引,它是否有助于提高 ORDER BY fld_date 性能。?
我如何找出 MySql 中存在特定表的数据库?
Mysql version is
+----------------------+
| version() |
+----------------------+
| 5.1.35-community-log |
+----------------------+
因为我在一个实例上有大约 25 个数据库,所以我只想找到特定表存在的数据库?
在执行 perl -MCPAN -e 'install Module::Build' 时;它给出了以下错误,我该如何解决?
/usr/bin/perl Build --makefile_env_macros 1
Can't locate Perl/OSType.pm in @INC (@INC contains: t/lib t/bundled lib /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at lib/Module/Build.pm line 13.
mylvmbackup 是一个用于快速创建 MySQL 备份的 Perl 脚本。它使用 LVM 的快照功能来执行此操作。以下是我在尝试执行 mylvmbackup perl 脚本时遇到的错误。我该如何解决这个问题?
操作系统版本:Cent OS 5.5
Perl 版本:V5.8.8
[root@localhost mylvmbackup-0.13]# ./mylvmbackup --user=root --password=test --mycnf=/etc/mysql/my.cnf --vgname=vol_mygroup --lvname=mysql --backuptype=tar
Can't locate Config/IniFiles.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ./mylvmbackup line 20.
如何避免缺少命令行参数的语法错误?
示例 shell 脚本:
var1=$1;
var2=$2;
echo $var1
echo $var2
var3=`expr $var1 + $var2`;
echo $var3
输出 :
shell>sh shelltest 2 3
2
3
5
输出 :
shell>sh shelltest
expr: syntax error
由于没有传递任何参数,我怎样才能避免这种情况并传递我自己的消息而不是“expr:语法错误”?
我在 mysql 5.1 中创建了用户并赋予了 ALL 权限,详情如下,
mysql> show GRANTS FOR test;
+-------------------------------------------------------------+
| Grants for test@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `tt`.* TO 'test'@'%' |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)
但是 show databases 不显示 mysql 上的数据库。它仅显示如下。如何为其他数据库的表以及用户“测试”授予特权?
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
当我尝试使用 mysql 数据库作为用户测试时出错:
mysql> use mysql;
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
以下 shell 脚本未将数据插入表中。如何传递变量值以在 shell 脚本中插入 sql 语句。
id=0
while true
do
id=`expr $id + 1`;
mysql -u root -ptest --socket=/data/mysql1/mysql.sock -e 'insert into mytest1.mytable2(id,name) values (' $id ',"testing");'
echo $id >> id.txt
done
我已经如下修改脚本并尝试过,但仍然有问题
id=0
while true
do
id=`expr $id + 1`;
# mysql -u root -ptest --socket=/data/mysql1/mysql.sock1 -e 'insert into mytest1.mytable1(name) values ("amma");'
mysql -u root -ptest --socket=/data/mysql1/mysql.sock -e 'insert into mytest1.mytable2(id,name) values ( $id ,"testing");'
echo $id >> id.txt
done
错误 :
]$ ./insert
ERROR 1054 (42S22) at line 1: Unknown column '$id' in 'field list'