MYSQL教程之MySQL中文参考手册3(MySQL邮件列表及如...
如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。mysql|参考|参考手册|毛病|邮件列表|中文MySQL中文参考手册3(MySQL邮件列表及怎样发问或呈报毛病)
转载译者:晏子
〖前往〗〖转发〗
译者:晏子(clyan@sohu.com)主页:http://linuxdb.yeah.net
2MySQL邮件列表及怎样发问或呈报毛病
2.1MySQL邮件列表
要定阅主MySQL邮件列表,送一条动静到电子邮件地点mysql-subscribe@lists.mysql.com。
要退订主MySQL邮件列表,送一条动静到电子邮件地点mysql-unsubscribe@lists.mysql.com。
只要你发送动静的地点是成心义的,动静的主题行和注释将被疏忽。
假如你的复兴地点不是无效的,你能够明白地指定地点。把短横加到定阅或退订命令词,随后是你的地点,“@”由一个字符“=”取代。比方,要定阅到john@host.domain,送一条动静到mysql-subscribe-john=host.domain@lists.mysql.com。
邮寄到mysql-subscribe@lists.mysql.com或ezmlm邮件列表处置器。具体信息可在ezmlm网点失掉。
要想邮寄一条动静到列肀旧恚⑺湍愕南⒌?ahref=mailto:mysql@lists.mysql.com>mysql@lists.mysql.com。但是,请万万不要将关于定阅或退订的邮件发到mysql@lists.mysql.com,由于送到该地点的任何邮件被主动地被分发到上千个其他用户。
你当地的网站大概有良多mysql@lists.mysql.com的定户,假如如许,也大概有一个当地邮件列表,以便使从lists.mysql.com发到你网站的动静被传送到你的当地列表。在这类情形下,请接洽你的体系主管到场当地MySQL列表和从个中删除。
已有以下MySQL邮件列表:
announce
这是MySQL新版本和相干程序的公布关照,这是小信息量的列表,我们以为一切的MySQL用户应当定阅。
mysql
为一样平常MySQL会商的主列表。请注重一些话题最幸亏更专业的列表上会商。假如你邮寄到毛病的列表上,你大概得不到回覆!
mysqldigest
文摘情势的mysql列表,这意味着你失掉一切单个动静,作为一个年夜邮件一天发送一次。
java
会商MySQL和Java,次要关于JDBC驱动程序。
javadigest
一个文摘版本java列表。
win32
有关微软操纵体系上比方WindowsNT的MySQL一切器材。
win32digest
一个文摘版本win32表。
myodbc
有关用ODBC连接MySQL的一切器材。
myodbcdigest
一个文摘版本myodbc列表。
msql-mysql-modules
关于MySQL中对Perl撑持的一个列表。
msql-mysql-modules-digest
一个文摘版本msql-mysql-modules列表。
developer
为开辟MySQL原代码的人的一个列表。
developerdigest
一个文摘版本developer列表.
你可用上述的办法定阅或退订一切列表。在你的定阅或退订动静中,只是放进不是mysql的得当邮件列表名。比方,定阅或退订myodbc列表,送一条动静到(原文未供应)。
2.2发问或呈报毛病
在邮寄一份毛病呈报或成绩前,请按以下步骤做:
由寻觅MySQL联机的手册入手下手:
http://www.mysql.com/Manual_chapter/manual_toc.html
我们经由过程常常以新发明的成绩的办理办法更老手册,勉力使它是最新的!
搜刮MySQL邮件列表档案:
http://www.mysql.com/doc.html
你也可以使用http://www.mysql.com/search.html寻觅在http://www.mysql.com/下的网页(包含手册)。
假如你不克不及在手册或档案发明谜底,反省你当地的MySQL专家。假如你仍旧不克不及发明你成绩的谜底,持续读下一节关于如何发送邮件到(原文未供应)。
2.3如何呈报毛病或成绩
写一份好的毛病呈报必要耐烦,可是第一次就做得准确可节俭你我的工夫。本节将匡助你准确撰写你的呈报,以使你不华侈工夫,也大概做一些基本不克不及匡助我们的事变。
假如大概的话,我们勉励每一个人利用mysqlbug剧本发生一份毛病呈报(或关于任何成绩的一份呈报)。mysqlbug可在源代码分发或二进制分发的MySQL安装目次下的bin目次中的scripts目次下找到。假如你不克不及利用mysqlbug,你仍旧应当包含在本节列出的一切需要的信息。
mysqlbug剧本经由过程主动断定以下良多信息来匡助你天生一份呈报,可是假如一些主要的器材不见了,请在你的动静中包括它!请细心浏览本节而且包管这里形貌的一切信息包括在你的呈报中。
要记着,有大概复兴一条包括太多的信息动静,但不复兴包括少少信息的动静,由于人们以为他们晓得一个成绩的缘故原由而且假定某些细节无所谓,以是他们经常疏忽现实。一个好的准绳是:假如你嫌疑所说的事变,持续说!在你的呈报中写上几行,比由于第一次没有包括充足的信息而自愿诘问和守候谜底要快上千倍,并且少些贫苦。
最多见的毛病是人们不指出他们正在利用的MySQL分发的版本号,或不指出在甚么平台上平台安装了MySQL(包含平台版本号)。这是极为相干的信息,而且没有它99%毛病呈报是无用的!我们常常失掉如许的发问“为何它不给我事情?”,然后我们发明所需的功效还没有在该版本的MySQL中完成,或在一份呈报中形貌的一个毛病已在更新的MySQL版本修改了。偶然毛病是依附于平台,在这类情形下,不晓得平台操纵体系和版本号基本不成能修改任何器材。
还要记着,要供应你的编译器信息,假如它与成绩有关。人们常常发明错在编译器而以为MySQL的成绩。年夜多半编译器一直都在开辟中而且随版本也渐渐变得更好。为了断定决意你的成绩是不是依附于你的编译器,我们必要晓得利用甚么编译器。注重每一个编译器得成绩应当被以为是一个毛病,因而要呈报。
在毛病呈报中包括一个成绩的无缺形貌是最有匡助的。即,你所做的招致这个成绩的一个好的例子和切实形貌的成绩自己。最好的呈报是包含显现怎样再次发生毛病或成绩的一个完全例子。
假如一个程序发生一条毛病信息,十分主要的是在你的毛病呈报中要包括它!假如我们试着从利用程序的档案中找一些器材,最好是呈报的毛病动静准确地婚配程序所发生的。(乃至注重巨细写!)你决不该该试图记着毛病动静是甚么,相反,将全体动静拷贝而且粘贴进你的呈报中!
假如你有一个MyODBC成绩,你应当实验发生一个MyODBC跟踪文件,详见16.6呈报MyODBC的成绩.
请记着,将要浏览你呈报的人有良多利用80列显现。在发生呈报或利用mysql命令行工具的例子时,你应当为那些大概超越显现可用宽度的输入(比方,EXPLAINSELECT语句,见上面的例子)利用--vertical选项(或G语句停止符)。
请在你的呈报中包含以下信息:
你正在利用的MySQL分发的版本号(比方,MySQL3.22.22)。你能够实行mysqladminversion找到你正在运转哪一个版本。mysqladmin能够在你的MySQL安装目次的bin目次上面找到。
你正在利用的呆板的打造商和型号。
操纵体系名字和版本。对年夜多半操纵体系,你能够经由过程实行一条Unix命令uname-a失掉有关信息。
偶然存储器的数目(物理和假造的)是成心义的,假如有疑问,包括这些值。
假如你正在利用一个MySQL源代码分发,则必要利用的编译器的称号和版本号。假如你有一个二进制代码的分发,就必要该分发的名字。
假如成绩在编译时代产生,则包括正确的毛病动静,而且也包括成绩产生的文件中堕落代码四周的一些高低文。
假如任何数据库表与成绩有关,包括从mysqldump--db_nametbl_name1tbl_name2…的输入了局。这是很简单做到的,而且它是一个取得有关任何数据库表信息的无效办法,将匡助我们制造一个婚配你所碰到成绩的情况。
关于与速率或SELECT语句有关的成绩,你老是应当包含EXPLAINSELECT...的输入和最少SELECT语句发生的行数。你给出有关你的情形越多的信息,某些人越能匡助你。比方,以下的例子是一份很好的毛病呈报(固然它应当用与mysqlbug剧本邮寄):运转mysql命令行工具的例子(注重对其输入凌驾80列显现设备的语句利用G停止符):
mysql>SHOWVARIABLES;
mysql>SHOWCOLUMNSFROM...G
<output-from-SHOW-COLUMNS>
mysql>EXPLAINSELECT...G
<output-from-EXPLAIN>
mysql>FLUSHSTATUS;
mysql>SELECT...;
<AshortversionoftheoutputfromSELECT,
includingthetimetakentorunthequery>
mysql>SHOWSTATUS;
<outputfromSHOWSTATUS>
假如在运转MySQL时是产生成绩,实验一下供应一个重现成绩的输出剧本,该剧本应当包含任何须要的源文件,重现你情形的剧本越正确越好。假如你不克不及供应剧本,你最少应当在你的邮件中包含从mysqladminvariablesextended-statusprocesslist的输入以供应你的体系如何运转!
假如你以为MySQL发生一个奇异的查询了局,不但要包括了局,并且也要包括应当是甚么了局的定见和形貌你定见所根据的来由。
当给出成绩的一个例子时,最好利用在你的实在情形下的而不是一个新的变量名、表名等等。这个成绩应当与一个变量的名、表等有关!大概这些前提是刻薄的,可是平安比忧虑更好。不论怎样说,供应利用你实践情形的例子应当对照简单,而且各方面来说它对我们更好一些。假如你有不想把数据显现他人看,你可以使用ftp把它上传到
ftp://www.mysql.com/pub/mysql/secret/。假如数据的确是高度秘密的,乃至不想让我们看到它们,那末持续,并供应利用别的名字的例子,可是请注重这是最初选择。
假如大概,包含相干程序的一切选项,比方,指明你启动mysqld保卫程序和运转任何MySQL客户程序所利用的选项,工具mysqld和mysql等程序和configure的选项经常是谜底的关头和相当主要的!包含他们相对不是一个坏主张!假如你利用任何模块,比方Perl或PHP,请也包含它们的版本号。
假如你不克不及发生一个行数少的测试,或假如测试表太年夜,不克不及寄给邮件列表(凌驾10行),你应当利用mysqldump倒出(dump)数据库表而且创立“README”文件形貌你的成绩,用tar和gzip造创立你的文件的一个紧缩的档案,而且利用ftp把档案文件转移到
ftp://www.mysql.com/pub/mysql/secret/,然后把成绩的冗长形貌发到mysql@lists.mysql.com。
假如你的成绩与权限体系有关。请包含mysqlaccess、mysqladminreload的输入和一切实验毗连时失掉的毛病动静!当你测试你的权限时,你应当起首运转mysqlaccess。在这今后,实行mysqladminreloadversion,最初你应当实验用你有成绩的程序举行毗连。mysqlaccess可在你的MySQL安装目次下的“bin”目次找到。
假如你有一个对毛病的补钉程序,那最好,可是万万别假定补钉程序是我们必要的统统,或即便你不供应一些需要信息如补钉能修改的毛病的条件前提,便可利用它。我们大概发明你的补钉程序成绩,大概我们大概基本不睬解它。假如是如许,我们不克不及利用它。在这里测试前提将匡助我们,这意味着补钉程序将处置统统大概呈现的情形。假如我们发明了补钉不克不及事情的界限前提(即便很怪),它大概毫无用途。
对毛病是甚么、为何产生或它依附甚么的推测一般是毛病的。我们乃至不克不及在没有起首利用一个调试器以断定一个毛病的真正缘故原由时做这类推测。
在你的邮件动静申明你已反省了参考手册和邮件回档,以便让其别人晓得你本人实验办理你的成绩。
假如你失掉一个parseerror,请细心反省你的语法!假如你不克不及它发明有甚么不合错误,极有多是你以后MySQL版本不撑持你正在利用的查询。假如你正在利用最新版并且http://www.mysql.com/doc.html的参考手册没有触及你正在利用的语法,MySQL就不撑持你的查询。在这类情形下,你独一的选择是本人完成语法并邮寄过去。假如手册触及你正在利用的语法,可是你有一个更旧版本的MySQL,你应当反省MySQL的更新汗青来找出语法什么时候被完成。见DMySQL变迁汗青。这时候你有晋级到一个更新MySQL版本的选择。
假如你有一个如许的成绩:当你存取某些特定命据库表时,你的数据仿佛已损坏或堕落,你应当起首用myisamchk反省然后实验修复你的数据库表。见13保护MySQL安装.
你常常失掉损坏了的数据库表,你应当实验发明这什么时候和为什么产生!此时“mysql-data-directory/hostname.err”文件大概包括所产生事变的一些信息。请在你的毛病呈报包括这个文件的任何有效信息!假如没有在更新傍边杀逝世了mysqld,一般应当相对不损坏数据库表!假如你能找出mysqld为何逝世失落的缘故原由,关于我们,更简单向你供应对成绩的修改!
假如大概,下载最新版本的MySQL,而且反省它是不是办理你的成绩。MySQL的一切版本都被完全地测试而且应当毫无成绩地运转!我们信任使统统尽量向后兼容,而且你应当能在数分钟内切换MySQL版本!见4.3要利用MySQL哪一个版本。
假如你是一个撑持客户,请间接邮寄毛病呈报到得当的邮件列表,看看是不是有其别人有这个成绩的履历(也许已办理)。
关于报道MyODBC毛病的信息,见16.2如何呈报MyODBC成绩。
一些罕见成绩的谜底,见18成绩和罕见的毛病。
当谜底一般发给你而不是邮件列表时,总结谜底而且将总结发到邮件列表以便别的人能够从你收到的匡助你办理成绩的谜底中受害,这被以为是一个很好的礼貌。
2.4在邮件列表上回覆成绩的指南
假如你以为你的谜底引发普遍的乐趣,你大概想要把它寄到邮件列表中而不是间接回复发问的人。试着让你的谜底充足广泛,让不是邮寄者的其别人可从它获益。当你邮寄到邮件列表时,请包管你的回覆反面之前的谜底反复。
实验总结在你的回复中的成绩的次要部分,别感到欠好意义援用全体原文动静。
请不要从有HTML形式的扫瞄器投寄邮件动静!很多用户不必扫瞄器读邮件!
义务编纂:eight(2001-06-0620:13)列举选择MySQL的理由的最困难的地方在于,如何对这些理由进行排序。MySQL学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋? 是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 对于微软系列的东西除了一遍遍尝试还真没有太好的办法 如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。 还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! 但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
页:
[1]