讨论各种MySQL问题,可以包括基础问题,疑难,优化等。
Submitted by xkclub on 周一, 2008/01/14 - 18:13
CREATE TABLE test TYPE=HEAP select sbszdwid,sbcj,sbzt from sbkc,sbinfo where sbszdwid=79010 and sbkc.sbid=sbinfo.sbid
可以在mysql中运行且生成了想要的表和数据,为什么用jsp+jdbc5.X+mysql6.X却不能成功了
Submitted by plantegg on 周一, 2008/01/07 - 14:59
请教一个问题:我们对大表(6G的样子)进行加列的时候发现速度特别慢(通过观察生成的临时文件的大小差不多4M/秒在变化),而CPU,内存的占有率也非常低,而我们的机器配置非常好,8CPU,16G内存,正常IO能达到300M/秒,为什么加列(也可以说所有修改表结构)会这么慢呢?可能还和哪些因素相关啊?
Submitted by lukemooretan on 周四, 2008/01/03 - 22:01
我是在HP64的服务器,LINUX4环境下,调用mgm api函数的时候进行编译的,然后就报下面的错,
/usr/lib/mysql/libndbclient.a(mgmapi.o)(.text+0xaec2): In
function `ndb_mgm_get_configuration':
/data/home/mysqldev/tmp-200701251519-5.1.15-beta-1844/rpm/BUILD/
mysql-5.1.15-beta/mysql-release-5.1.15-beta/storage/ndb/src/mgmapi/
mgmapi.cpp:2095: undefined reference to
`base64_needed_decoded_length'
/usr/lib/mysql/libndbclient.a(mgmapi.o)(.text+0xaf12):/data/home/
mysqldev/tmp-200701251519-5.1.15-beta-1844/rpm/BUILD/mysql-5.1.15-beta/
mysql-release-5.1.15-beta/storage/ndb/src/mgmapi/mgmapi.cpp:2096:
undefined reference to `base64_decode'
/usr/lib/mysql/libndbclient.a(NdbSleep.o)(.text+0x32): In
Submitted by sailer on 周一, 2007/12/31 - 19:24
我从mysql.com下载mysql 5.1.22的相关rpm包并安装,现在需要安装perl-DBD-MySQL,安装的时候提示需要libmysqlclient.so.15文件,但是mysql 5.1.22包中带的这个文件是libmysqlclient.so.16,我在网上找不到依赖于libmysqlclient.so.16的per-DBD-MySQL的包,能找到的全部是依赖于libmysqlclient.so.15的,不知道这个问题怎么解决?
Submitted by mdiane on 周五, 2007/11/30 - 13:42
mysql版本:mysql5.0.41
操作系统:redhat as4 x86 u3
可以正常启动:
#./mysql.server start
但是不能关闭:
./mysql.server stop
Shutting down MySQL..............................................................................................[失败]
但是在mysql的log里面却没有错误信息:
071130 13:22:20 mysqld started
071130 13:22:20 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.0.41-log' socket: '/usr/local/mysql/var/mysql.sock' port: 3306 Source distribution
071130 13:30:24 [Note] /usr/local/mysql/libexec/mysqld: Normal shutdown
Submitted by caramon on 周五, 2007/11/16 - 21:32
有一存储过程,假设如下
CREATE DEFINER=`root`@`localhost` PROCEDURE `test1`(out p_sErrorMsg char(50))
BEGIN
DECLARE m_iCount INT DEFAULT 0;
DECLARE m_iCredit INT DEFAULT 0;
DECLARE m_sTempStr char(30) default '';
DECLARE m_sTempId char(30) default '';
START TRANSACTION;
delete from account where user_id = 1;
call test2(@a);
ROLLBACK;
END
而假设TEST2这个存储过程里面只有一条SELECT语句
这个时候ROLLBACK对于TEST1是无效的,在CALL TEST2的时候,delete from account where user_id = 1;就会被自动提交了,而在MYSQL官方手册中所提出的一个会造成隐性COMMIT的语句列表中并未包括CALL PROCEDURE。。。除非MYSQL 官方手册所列出之列表只是指在命令行操作的语句。。。。
Submitted by caramon on 周四, 2007/11/15 - 00:05
(发这帖子之后,自己又做了个模拟的试验,建立一个INNODB表,存储一条记录,同时建立一个存储过程,只是UPDATE这个表)
CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(out p_sErrorMsg char(50))
BEGIN
DECLARE m_iCount INT DEFAULT 0;
DECLARE m_iCredit INT DEFAULT 0;
DECLARE m_iLoansum INT DEFAULT 0;
DECLARE m_sTempStr char(30) default '';
DECLARE m_sTempId char(30) default '';
DECLARE EXIT HANDLER FOR NOT FOUND BEGIN ROLLBACK; SET p_sErrorMsg = 'NOT FOUND'; END;
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; SET p_sErrorMsg = 'SQLEXCEPTION'; END;
DECLARE EXIT HANDLER FOR SQLWARNING BEGIN ROLLBACK; SET p_sErrorMsg = 'SQLWARNING'; END;
START TRANSACTION;
Submitted by caramon on 周二, 2007/11/13 - 11:15
不好意思,注册了段时间,一直在向大家学习,前几天遇到个小问题,一直无法解决,想到了这里,还希望可以得到帮助
经常在网上看到一些关于MYSQL5 存储过程内将表名做为参数传递进存储过程以提高存储过程灵活度的帖子,当然,其中也提到了,如果使用EXEC这类方法的时候很有可能会因为MYSQL每次调用存储过程都会将之重新编译而导致提高了灵活度而降低了运行效率的。
但是每篇文章都没有提及到底是这个存储过程是整体被重新编译,还是说只是存储过程中的例如 EXEC “SELECT ***"中双引号部分被重新编译。如果有知道的能否指点下,麻烦大家了
Submitted by neka on 周三, 2007/10/31 - 14:50
记录集到了千万级的数量级,并且有频繁的读写操作,目前采用MRG_MyISAM表,优点是查询很快,缺点是写的入口只有一个,并且每次写的时候mysql内部把整个表都锁定了,更新操作很慢,并且在高并发的情况下,经常出错,请教一下有没有其它的解决方案。
Submitted by trooman on 周六, 2007/10/27 - 10:03
听说有人解决MYSQL千万条数据分页,但也有人说MYSQL只能处理百万条数据,感觉很迷糊!
当数据量在百万条以上时,不优化的而直接用LIMIT分页慢得要死,我一般的优化方法仅仅是SQL语句加上ID查询条件,如
where id > 100000 limit 486, 20,请斑竹指教下,有哪些更好的方法?
页面
最近评论