Below you will find pages that utilize the taxonomy term “数据库”
July 23, 2014
MySQL 更新并返回计数
"\u003cp\u003e对于想使用 MySQL 实现简单 ID 分配器, 一般就是设置一个整数字段, 然后想分配的时候加 1 并返回. 新手往往犯错误, 先执行一条 update 语句, 然后再 select 那个字段. 但这是错误的!\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eCREATE\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eTABLE\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003emytable\u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003e (\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003ecounter\u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003e int(\u003cspan style=\"color:#ae81ff\"\u003e10\u003c/span\u003e) \u003cspan style=\"color:#66d9ef\"\u003eNOT\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eNULL\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eDEFAULT\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;0\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e) ENGINE\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eInnoDB \u003cspan style=\"color:#66d9ef\"\u003eDEFAULT\u003c/span\u003e CHARSET\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eutf8;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003einsert\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003einto\u003c/span\u003e mytable \u003cspan style=\"color:#66d9ef\"\u003evalues\u003c/span\u003e(\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e正确的方式应该是使用 last_insert_id() 函数:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eupdate\u003c/span\u003e mytable \u003cspan style=\"color:#66d9ef\"\u003eset\u003c/span\u003e counter\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003elast_insert_id(counter\u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eselect\u003c/span\u003e last_insert_id();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e另一种方法(http://imysql.cn/2010/07/01/mysql-faq-using-mysql-as-serial-generator.html):\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eSELECT\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003eID\u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003eID_RANGE_XX\u003cspan style=\"color:#f92672\"\u003e`\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eORDER\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eBY\u003c/span\u003e ID \u003cspan style=\"color:#66d9ef\"\u003eLIMIT\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eFOR …\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
August 10, 2012
incorrect MySQL client library version! This gem was compiled for 6.0.0 but the client library is 5.5.20. 的解决办法
"\u003cp\u003e从mysql官方下载 mysql-connector-c-noinstall-6.0.2-win32 解压到e:/。注意根据自己的实际情况下载相对应的版本,这里使用非安装版。\u003c/p\u003e\n\u003cp\u003eor Ruby 1.9.2:\u003c/p\u003e\n\u003cp\u003egem install mysql \u0026ndash;platform=ruby \u0026ndash; \u0026ndash;with-mysql-dir=e:/mysql-connector-c-noinstall-6.0.2-win32\u003c/p\u003e\n\u003cp\u003efor Ruby 1.9.3: (showing mysql2 variant)\u003c/p\u003e\n\u003cp\u003egem pristine mysql2 \u0026ndash; \u0026ndash;with-mysql-config=e:\\mysql-connector-c-noinstall-6.0.2-win32\u003c/p\u003e\n\u003cp\u003e这里我用64位的win7系统.\u003c/p\u003e\n\u003cp\u003e然后将** E:\\mysql-connector-c-noinstall-6.0.2-win32\\lib** 目录下的 libmysql.lib 文件复制到 \u003cstrong\u003eE:\\RailsInstaller\\Ruby1.9.3\\bin\u003c/strong\u003e 目录下。\u003c/p\u003e\n\u003cp\u003e重新执行刚才的命令即可。\u003c/p\u003e"
July 13, 2012
mysql中Table is read only的解决办法
"\u003cp\u003e今天遇到一个这样的提示repair数据表的时候出现“mysql中Table is read only”\u003c/p\u003e\n\u003cp\u003e在mysql中,Select之类的都正常,但在网页程序中提示:Table ‘********’ is read only\u003c/p\u003e\n\u003cp\u003e然后我\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003echmod -R 0777 /var/lib/mysql/taoniu2007/\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e给数据库目录的所属用户和组改为mysql,并加上777的权限,还是一样提示。\u003c/p\u003e\n\u003cp\u003e程序中使用root连接,也是一样的提示。\u003c/p\u003e\n\u003cp\u003e想用myisamchk来检查一下,也提示read only。\u003c/p\u003e\n\u003cp\u003e最终在这里找到了解决方法: \u003ca href=\"http://www.mysqltalk.org/re-the-table-is-read-only-vt154092.htm\"\u003ehttp://www.mysqltalk.org/re-the-table-is-read-only-vt154092.htm\u003c/a\u003e l\u003c/p\u003e\n\u003cp\u003e引用一下\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSQL代码\nHi,\u003c/p\u003e\n\u003cp\u003eI just encountered a similar problem on one of my production servers\nthis morning. (I’m still investigating the cause.) After doing a\nquick bit of …\u003c/p\u003e\u003c/blockquote\u003e"
June 12, 2012
CAP理论十二年回顾:”规则”变了
"\u003cp\u003e\u003cem\u003e本文首发于 \u003ca href=\"http://www.computer.org/portal/web/computingnow/computer\"\u003eComputer\u003c/a\u003e 杂志,由InfoQ和IEEE呈现给您。\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eCAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显式处理分区情形,系统设计师可以做到优化数据一致性和可用性,进而取得三者之间的平衡。\u003c/p\u003e\n\u003cp\u003e自打引入CAP理论的十几年里,设计师和研究者已经以它为理论基础探索了各式各样新颖的分布式系统,甚至到了滥用的程度。NoSQL运动也将CAP理论当作对抗传统关系型数据库的依据。\u003c/p\u003e\n\u003cp\u003eCAP理论主张任何基于网络的数据共享系统,都最多只能拥有以下三条中的两条:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e数据一致性(C),等同于所有节点访问同一份最新的数据副本;\u003c/li\u003e\n\u003cli\u003e对数据更新具备高可用性(A);\u003c/li\u003e\n\u003cli\u003e能容忍网络分区(P)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCAP理论的表述很好地服务了它的目的,即开阔设计师的思路,在多样化的取舍方案下设计出多样化的系统。在过去的十几年里确实涌现了不计其数的新系 统,也随之在数据一致性和可用性的相对关系上产生了相当多的争论。“三选二”的公式一直存在着误导性,它会过分简单化各性质之间的相互关系。现在我们有必 要辨析其中的细节。实际上只有“在分区存在的前提下呈现完美的数据一致性和可 …\u003c/p\u003e"
April 7, 2012
PowerDesigner(PowerDesigner15.1.0.2850)下载、安装以及破解
"\u003cp\u003e一、先安装PowerDesigner15(PowerDesigner15.1.0.2850),下载地址如下:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://download.sybase.com/eval/PowerDesigner/PowerDesigner15_Evaluation.exe\"\u003ehttp://download.sybase.com/eval/PowerDesigner/PowerDesigner15_Evaluation.exe\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e二、破解文件下载地址:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://download.csdn.net/source/1605189\"\u003ehttp://download.csdn.net/source/1605189\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e将下载的破解文件pdflm15.dll覆盖到PowerDesigner15安装目录下(如:C:\\Program Files\\Sybase\\PowerDesigner 15)\u003c/p\u003e"
March 18, 2012
wordpress后台文章列表显示缩略图
"\u003cp\u003e大家都知道我们在wordpress后台添加文章或页面时如果你启用了缩略图功能,那么会在添加时有个特色图像的设置。具体的大家可以看下我的教程( \u003ca href=\"http://www.favortt.com/wordpress-theme-thumbnails.html\" title=\"WordPress主题(模板)修改教程(十一):使用文章缩略图功能\"\u003e点击查看\u003c/a\u003e),当我们添加好后。如果你在wordpress后台需要看某个文章或页面的缩略图是什么的时候,还得单击编辑才能看到。这样是不是很麻烦呢?如果我们直接把缩略图显示在文章或者页面的列表上面,这样的话就一目了然了。如下面效果图:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2012/03/thumbnail-list.png\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2012/03/thumbnail-list.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e今天磊子就把这个功能的实现,分享给大家,我们需要用到的是wordpress插件API里面的函数方法。看下面代码:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;?php\nadd_filter(\u0026#39;manage_posts_columns\u0026#39;, \u0026#39;lei_add_thumb_col\u0026#39;);\nfunction lei_add_thumb_col($cols) {\n\t$cols[\u0026#39;thumbnail\u0026#39;] = __(\u0026#39;Thumbnail\u0026#39;);\n\treturn $cols;\n}\n\n//__(\u0026#39;Thumbnail\u0026#39;)是显示的文字标题,也可以改成__(\u0026#39;缩略图\u0026#39;)。\n\n//通 …\u003c/code\u003e\u003c/pre\u003e"
November 22, 2011
如何构建千万用户级别后台数据库架构设计的思路
"\u003cp\u003e【 \u003cstrong\u003e导读\u003c/strong\u003e】\u003c/p\u003e\n\u003cp\u003e关于如何构建千万级别用户的后台数据库架构话题,在ITPUB及CSDN论坛都有不少网友提问,新型问答网站知乎上也有人提问,并且顺带梳理了下思路,方便更多的技术朋友有章可循,整理一篇抛砖引玉性的文章。\u003c/p\u003e\n\u003cp\u003e一、 \u003cstrong\u003e技术朋友给出的背景资料\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003e(1). 网站型应用,主要指:SNS社交网站、新闻门户型网站、邮件系统、SNS Game社交游戏、电子商务网站、即时通信IM等类型系统;\u003c/p\u003e\n\u003cp\u003e(2). 注册用户为千万级别,也即1KW注册用户以内;\u003c/p\u003e\n\u003cp\u003e二、要求\u003c/p\u003e\n\u003cp\u003e构建千万级别用户的后台数据库架构分析思路,对数据层架构设计的有章可循,必须考虑数据量的大小,以及数据库提供服务的性能和系统的可靠性,适当地考虑用户量超过,以及需要使用的服务器资源等信息。\u003c/p\u003e\n\u003cp\u003e三、构建千万级别用户的后台数据库架构的分析思路\u003c/p\u003e\n\u003cp\u003e曾经发过一篇文章,关于千万级别用户应用架构设计的歌谣,供大家参考 \u003ca href=\"http://blog.haohtml.com/archives/12110\"\u003e千万级架构设计诀窍\u003c/a\u003e,接下来我们针对如何构建千万级别用户的后台数据库架构,给出通用性分析思路的建议,未必完全靠谱,但求基本靠谱(注:毕竟很多事情需要看具体业务而定的):\u003c/p\u003e\n\u003cp\u003e(1). 一定要区分业务类型,可能达到千万用户级别的应用业务 …\u003c/p\u003e"
June 15, 2011
Redis在Windows,linux平台下的安装配置
"\u003cp\u003e为了方便查阅资料,特将网上搜索到的Redis相关安装配置进行归档整理:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ewindow平台Redis安装\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e下载地址: \u003ca href=\"http://code.google.com/p/servicestack/wiki/RedisWindowsDownload\"\u003ehttp://code.google.com/p/servicestack/wiki/RedisWindowsDownload\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eRedis文件夹有以下几个文件\u003c/p\u003e\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eredis-server.exe:服务程序\u003c/p\u003e\n\u003cp\u003eredis-check-dump.exe:本地数据库检查\u003c/p\u003e\n\u003cp\u003eredis-check-aof.exe:更新日志检查\u003c/p\u003e\n\u003cp\u003eredis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e指定redis的配置文件,如没有指定,则使用默认设置\u003c/p\u003e\n\u003cp\u003e解压目录:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ed:\u0026gt;redis-server.exe\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003eredis-cli.exe:命令行客户端,测试用.windows下没有redis.conf配置文件.\u003c/p\u003e\n\u003cp\u003e解压目录:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ed:\u0026gt;redis-cli.exe -h 127.0.0.1 -p 6379\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e使用方法有两种:一种是直接使用redis-cli.exe 后面加操作,另一种是直接输 …\u003c/p\u003e"
June 15, 2011
Google开源了一个kv存储的库leveldb
"\u003cp\u003eGoogle开源了一个kv存储的库leveldb,从提交的代码和contributor名单来看,毫无疑问,就是bigtable论文描述的tablet的实现。也就是我们常说的LSMTree的一个实现。 \u003ca href=\"http://code.google.com/p/leveldb/\"\u003ehttp://code.google.com/p/leveldb/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e那LSMTree是什么呢?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.douban.com/group/topic/19607128/\"\u003ehttp://www.douban.com/group/topic/19607128/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe Log-Structured Merge-Tree (LSM-Tree)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.2782\u0026amp;;rep=rep1\u0026amp;type=pdf\"\u003ehttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.2782\u0026amp;;rep=rep1\u0026amp;type=pdf\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这篇文章读起来感觉有难度,细节太多。它介绍了 LSM-Tree 这种算法思想。这种算法思想主要用于解决日志记录索引的问题。这种应用的特点是数据量大、写速率高(2000条/s),又要建立有效的索引来查找日志中的特定条目。 采用 B+ 树索引,因为数据量大,每次又是随机的写到一个 page 中,导致无法进行有效的 page 缓存, …\u003c/p\u003e"
April 20, 2011
2011数据库技术大会演讲PPT下载(pdf版)
"\u003cp\u003e关于大会的更多精彩照片,请点击以下链接。(更新2011.4.16)\n\u003cstrong\u003e2011数据库技术大会现场图片,能找到你自己不?\u003c/strong\u003e\n\u003ca href=\"http://bbs.chinaunix.net/thread-2305667-1-1.html\"\u003ehttp://bbs.chinaunix.net/thread-2305667-1-1.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e2011数据库技术大会胜利结束了,非常感谢大家积极的参与支持。\n这次大会DBA相关的技术工程师达到了近700人,加上庞大的出版社、赞助商等参与者,大会总人数接近800人。会上再次汇集了国内各个领域的数据库技术工程师。\n这已经是第二届数据库技术大会了,如果算上下半年的架构师大会,就可以算作第4届由我们组织的技术大会了。经过这两年的发展,突然发现:DTCC、SACC真的成为了一个品牌。\n在第一届数据库技术大会中,有来自各个行业的技术工程师,例如,银行、证券、保险、电信、医疗、教育、制造业、物流、互联网等行业,不过,在这些行业中,互联网企业的占比较大。今年,这个行业比较有了一定的变化,那就是:教育、制造业、医疗、银行等行业的参与者的比重有明显的增加。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e职业比例的问题\u003c/strong\u003e\n数据库技术大会从名字上看,定位的人群就是DBA。另一方面,在一个企业中,纯DBA在企业的技术工程师中,占比不超 …\u003c/p\u003e"
March 21, 2011
sqlserver2000附加数据库错误823的解决方案
"\u003cp\u003e一、SQL-Server附加数据库时失败。\n1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。\n2、异常分析:关于823错误的 SQL-SERVER 中的帮助:\u003c/p\u003e\n\u003cp\u003e错误 823\n严重级别 24\n消息正文\n在文件 “%4!” 的偏移量 %3! 处的 %2! 过程中,检测到 I/O 错误 %1!。\u003c/p\u003e\n\u003cp\u003e解释\nMicrosoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。\n3、解决办法:\n在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:\n第一、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eexec sp_configure ‘allow …\u003c/p\u003e\u003c/blockquote\u003e"
November 17, 2010
数据库主键全局唯一方案
"\u003cp\u003e现在通过数据的水平切分(sharding)来实现数据库 Scale Out 的解决方案受到了越来越多人的青睐,但是在切分过程中可能遇到的问题也肯定不在少数,如切分规则的设计,切分后的访问路由,切分后的主键的全局唯一等等。\u003c/p\u003e\n\u003cp\u003e这里我主要列举几个可以使用在 MySQL 数据库主键全局唯一方案及其优劣,供大家参考:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e通过应用程序生成一个GUID,然后和数据一起插入切分后的集群。优点是维护简单,实现也容易。缺点是应用的计算成本较大,且GUID比较常,占用数据库存储空间较大,涉及到应用的开发。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e说明:主要优势是简单,缺点是浪费存储空间,GUID:32字节,100W记录,多32兆,如果是int,4字节,会少28M。如果有外键关联,会浪费更多。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e通过独立的应用程序事先在数据库中生成一系列唯一的 ID,各应用程序通过接口或者自己去读取再和数据一起插入到切分后的集群中。优点是全局唯一主键简单,维护相对容易。缺点是实现复杂,需要应用开发。\n说明:ID表要频繁查和频繁更新,插入数据时,影响性能。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e通过中心数据库服务器利用数据库自身的自增类型(如 MySQL的 auto_increment 字段), …\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e"
November 11, 2010
分布式数据库拆表拆库的常用策略
"\u003cp\u003e在大容量,高负荷的web系统中,对数据库进行一系列拆分,可有效提升数据库容量和性能。在初学程序的早期,程序员通常都喜欢按传统数据库设计模式,设计为单库和单一功能表的结构,这样的结构在数据量和并发量达到一定程度之后,会出现严重性能问题和维护问题。在出现问题的时候才着手进行优化,会非常痛苦,所以应该在系统架设之初就考虑好之后会出现的问题。\u003c/p\u003e\n\u003cp\u003e目前有些数据库策略是采用单库结构,然后通过同步分发到数台服务器实现读写分离。个人觉得这样的策略非常笨拙,还是想办法将其分隔开来好,否则每台机器的内存都很容易超支。\u003c/p\u003e\n\u003cp\u003e一般只对数据量比较大的表进行拆分,这应该没有什么异议;还有一种是有可能会进行维护的比较重要的表,比如文章目录表,如果有从其它系统倒数据进来的可能的话,也要拆掉,不然倒数据时一不小心把目录表弄坏了,发现忘了备份,那真是欲哭无泪。\u003c/p\u003e\n\u003cp\u003e下面来分析一下:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、时间结构\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e如果业务系统对时效性较高,比如新闻发布系统的文章表,可以把数据库设计成时间结构,按时间分有几种结构:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e平板式\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e表类似:\narticle_200901\narticle_200902\narticle_200903\u003c/p\u003e\n\u003cp\u003e用年来分还是用月可自定, …\u003c/p\u003e"
September 26, 2010
PHP操作MongoDB
"\u003cp\u003e\u003cstrong\u003e一、MongoDB简介\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMongoDB (名称来自”humongous”) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点: \u003ca href=\"http://www.mongodb.org/\"\u003ehttp://www.mongodb.org/\u003c/a\u003e,MongoDB特点:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e面向文档存储(类JSON数据模式简单而强大)\u003c/li\u003e\n\u003cli\u003e动态查询\u003c/li\u003e\n\u003cli\u003e全索引支持,扩展到内部对象和内嵌数组\u003c/li\u003e\n\u003cli\u003e查询记录分析\u003c/li\u003e\n\u003cli\u003e快速,就地更新\u003c/li\u003e\n\u003cli\u003e高效存储二进制大对象 (比如照片和视频)\u003c/li\u003e\n\u003cli\u003e复制和故障切换支持\u003c/li\u003e\n\u003cli\u003eAuto-Sharding自动分片支持云级扩展性\u003c/li\u003e\n\u003cli\u003eMapReduce 支持复杂聚合\u003c/li\u003e\n\u003cli\u003e商业支持,培训和咨询\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e二、安装MongoDB\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址: \u003ca href=\"http://www.mongodb.org/downloads\"\u003ehttp://www.mongodb.org/downloads\u003c/a\u003e,本文为windows平台,MongoDB运行命令:\u0026gt;bin/mongod。提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:datadb),当然你也可以修改成不同目录,只需要指定 –dbpath 参数,eg: …\u003c/p\u003e"
September 26, 2010
NoSQL数据库探讨之一 - 为什么要用非关系数据库?
"\u003cp\u003e随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:\u003c/p\u003e\n\u003cp\u003e1、High performance – 对数据库高并发读写的需求\nweb2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。\u003c/p\u003e\n\u003cp\u003e2、Huge Storage – 对海量数据的高效率存储和访问的需求\n类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户 …\u003c/p\u003e"
September 26, 2010
MongoDB 介绍,安装
"\u003cp\u003e这是MongoDB的系列学习笔记的第一篇,主要介绍什么是非关系型数据库MongoDB,如何下载,去哪儿下载,又该怎么正确的安装等一系列问题。\u003c/p\u003e\n\u003ch2 id=\"一前言\"\u003e一、前言\u003c/h2\u003e\n\u003cp\u003e最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下。本人不才,借着自学的机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论。部分资源出自其他博客,旨将零散知识点集中到一起,如果有侵犯您的权利,请联系li-pan2@163.com。大部分内容均系原创,欢迎大家转载分享,但转载的同时别忘了注明作者和原文链接哦。\u003c/p\u003e\n\u003ch2 id=\"二mongodb简介\"\u003e二、MongoDB简介\u003c/h2\u003e\n\u003cp\u003eMongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。\n小插曲:什么是NoSql?\u003c/p\u003e\n\u003cp\u003eNoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、 …\u003c/p\u003e"
September 1, 2010
开源软件keepalived实现分布式数据分发
"\u003cp\u003e大家都看到过在支付宝架构图里面一个分布式数据分发中心(Gara系统),这个分布中心为了完成每天的数据抽取和向多个Oracle Rac集群和Greenplum集群分布数据的心脏,数据仓库系统是一切系统数据来源。其中功能是为了完成异构数据抽取和装载。\u003c/p\u003e\n\u003cp\u003e为了使Gara实现高效性和线性扩展能力,现在alipay dw是用4台高性能PC Dell R900(4*4core,128GB memory)来实现,但是Gara原来开发的程序不能实现分布式,只能通过调度系统来控制,灵活性不够强。\u003c/p\u003e\n\u003cp\u003e最近发现一个开源软件 Keepalived,能很好来实现Gara高效性和线性扩展能力,很多人用来 Keepalived网站的负载均衡,Keepalived还有一个重要的特性就是实现高可用性,就利用这个特性来实现Gara分布式管理\u003c/p\u003e\n\u003cp\u003eKeepalived可以提供IP层的高可用性, 一旦某一台机器的网络出现问题, 另一台服务器会立即(几秒或者更少的时间)使用出故障的服务器的IP进行工作。\u003c/p\u003e\n\u003cp\u003ekeepalived体系架构图:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/09/1252109344_11666ae6.jpg\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/1252109344_11666ae6.jpg\" alt=\"\"\u003e\u003c/a\u003e\nkeepalived体系架构很清晰,都模块化的,跟我们目前开发的调度系统架构非常相像,大家可以去 …\u003c/p\u003e"
September 1, 2010
分布式key/value存储系统比较
"\u003cp\u003e先介绍一下绍一些流行的分布式key/value存贮系统,并做一些简单的比较。\u003c/p\u003e\n\u003cp\u003e词汇与背景阅读:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/Distributed_hash_table\"\u003eDistributed Hash Table (DHT)\u003c/a\u003e and algorithms such as Chord or Kadmelia\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html\"\u003eAmazon’s Dynamo Paper\u003c/a\u003e, and \u003ca href=\"http://www.readwriteweb.com/archives/amazon_dynamo.php\"\u003ethis ReadWriteWeb article about Dynamo\u003c/a\u003e which explains why such a system is invaluable\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://aws.amazon.com/simpledb/\"\u003eAmazon’s SimpleDB Service\u003c/a\u003e, and \u003ca href=\"http://gigaom.com/2007/12/14/amazon-simple-db/\"\u003esome\u003c/a\u003e \u003ca href=\"http://www.satine.org/archives/2007/12/13/amazon-simpledb/\"\u003ecommentary\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://labs.google.com/papers/bigtable.html\"\u003eGoogle’s BigTable paper\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/Paxos_algorithm\"\u003eThe Paxos Algorithm\u003c/a\u003e – read this page in order to appreciate that knocking up a Paxos implementation isn’t something you’d want to do whilst hungover on a Saturday morning.\u003c/p\u003e\n\u003cp\u003e现有比较流行的key/value存储系统:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/09/1264740160_1835db83.jpg\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/1264740160_1835db83.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下评 …\u003c/p\u003e"
August 14, 2010
NoSQL总结分类
"\u003cp\u003eNoSQL数据库异军突起,随着Digg和 sf.net大型应用不断采取NoSQL,NoSQL运动已经蓬勃发展,NoSQL数据库很多,如何对他们分类,以便方便地根据自己应用特色选择不同的NoSQL数据库呢?\u003c/p\u003e\n\u003cp\u003eNoSQL = HVSP 无(传统关系数据库的)join或明显事务的高容量简单处理。\u003c/p\u003e\n\u003cp\u003e按照数据模型保存性质将当前NoSQL分为四种:\u003c/p\u003e\n\u003cp\u003e1.Key-value stores键值存储, 保存keys+BLOBs (二进制大对象Binary Large OBjects)\u003c/p\u003e\n\u003cp\u003e2.Table-oriented 面向表, 主要有Google的BigTable和Cassandra.\u003c/p\u003e\n\u003cp\u003e3.Document-oriented面向文本, 文本是一种类似XML文档,MongoDB 和 CouchDB\u003c/p\u003e\n\u003cp\u003e4.Graph-oriented 面向图论. 如Neo4J.\u003c/p\u003e\n\u003cp\u003eNoSQL一般都是分布式数据库,高性能是其特点,因此,数据是如何被分布、复制/碎片以及合成就成为关键,这其中涉及你的应用对数据一致性的要求,见CAP原理,不同一致性处理方式决定不同类型:\u003c/p\u003e\n\u003cp\u003e1.基本上基于Dynamo. 核心思想就是在多个节点之间获得最 …\u003c/p\u003e"
August 14, 2010
Cassandra数据模型
"\u003cp\u003e提起NoSQL这个话题,仿佛不应该是DBA要关注的事,而是架构师应该关心的。但是作为一名DBA,在使用传统的关系型思想建模时,应该有必要了解NoSQL的建模方法。\u003c/p\u003e\n\u003cp\u003e各种NoSQL数据库有很多,我最关注的还是\u003cstrong\u003eBigTable\u003c/strong\u003e类型,因为它是一个高可用可扩展的分布式计算平台,用来处理海量的结构化数据,而数据库同样也是处理结构化数据,所以除了没有SQL,在数据模型方面有相似之处。\u003cstrong\u003eCassandra\u003c/strong\u003e是facebook开源出来的一个版本,可以认为是BigTable的一个开源版本,目前twitter和digg.com在使用。我们尝试从DBA的角度出发去理解Cassandra的数据模型。\u003c/p\u003e\n\u003cp\u003eNoSQL并不能简单的理解为\u003cstrong\u003eNo SQL\u003c/strong\u003e,其本质应该是\u003cstrong\u003eNo Relational\u003c/strong\u003e,也就是说它不是基于关系型的理论基础,而我们所有传统的数据库都是基于这套理论而发展起来的,所以SQL并不是问题的关键所在,比如有些NoSQL数据库可以提供SQL类型的接口,允许你通过类SQL的语法去访问数据。而Friendfeed则是反其道而行之,利用关系型数据库MySQL,采用了去关系化的设计方法,去实现自己的KeyValue存储。所 …\u003c/p\u003e"
April 4, 2010
Tokyo Cabinet Key-Value数据库及其扩展应用PPT[原创]
"\u003cp\u003e以下是我4月2日在“ \u003ca href=\"http://dtcc.it168.com/\"\u003e2010年数据库技术大会\u003c/a\u003e”的演讲PPT,介绍了 Tokyo Cabinet Key-Value 数据库的性能优化关键参数,以及金山逍遥网在Tokyo Cabinet基础上实现的TCSQL实时列表缓存数据库(Version 1.3)。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2010/04/dtcc_tc_tt_tcsql.pdf\"\u003e点击下载dtcc_tc_tt_tcsql.pdf\u003c/a\u003e\u003c/p\u003e"
May 16, 2009
如何根据rowid获取extent_id
"\u003cp\u003e我们知道,rowid是由四部分组成的,分别是data_object_id,file_id,block_number和row_number,通过oracle提供的dbms_rowid包可以很方便的将一串rowid解析出上述四部分的内容。然后根据这些信息,则可以获取其extent_id。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eSYS@datac\u0026gt;declare\n 2 v_block_id number;\n 3 v_file_id number;\n 4 v_object_id number;\n 5 v_extent_id number;\n 6 v_object_name varchar2(30);\n 7 v_owner varchar2(30);\n 8 v_rowid varchar2(20):=\u0026#39;AAACrKAAXAAAAzUAAH\u0026#39;;\n 9 begin\n 10 select dbms_rowid.ROWID_BLOCK_NUMBER(v_rowid),\n 11 dbms_rowid.ROWID_RELATIVE_FNO(v_rowid),\n 12 …\u003c/code\u003e\u003c/pre\u003e"
November 12, 2008
新一篇: Oracle数据库的安全性措施概述
"\u003cp\u003e\u003cstrong\u003e一、Oracle中的实体完整性\u003c/strong\u003e Oracle在CREATE TABLE语句中提供了PRIMARY KEY子句,供用户在建表时指定关系的主码列。例如,在学生-选课数据库中,要定义Student表的Sno为主码,可使用如下语句:\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003eCREATETABLE student\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003e (sno NUMBER(8),\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003e sanme VARCHAR(20),\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003e sage NUMBER(20),\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003eCONSTRAINT pk_sno PRIMARYKEY(sno));\u003c/p\u003e\n\u003cp\u003e其中,PRIMARY KEY(Sno)表示是Student表的主码。PK_SNO是此主码约束名。\u003c/p\u003e\n\u003cp\u003e 若要在SC表中定义(Sno,Cno)为主码,则用下面语句建立SC表:\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003eCREATETABLE sc\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003e (sno NUMBER(8),\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003e cno NUMBER(2),\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003e grade NUMBER(2),\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif\" alt=\"\"\u003eCONSTRAINT pk_sc PRIMARYKEY(sno,cno));\u003c/p\u003e\n\u003cp\u003e 用PRIMARY KEY语句定义了关系的主码后,每当用户程序对主码列进行更新操作时,系统自 …\u003c/p\u003e"
November 12, 2008
在 Oracle 和 PHP 中使用 LOB
"\u003cp\u003e作者:Harry Fuecks是否达到 4,000 字节的极限? 我们先来了解一下 LOB……本文相关下载:\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/software/products/database/oracle10g/index.html\"\u003eOracle 数据库 10 \u003cem\u003eg\u003c/em\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/tech/php/zendcore/index.html\"\u003eZend Core for Oracle\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://httpd.apache.org/download.cgi\"\u003eApache HTTP Server 1.3 和更高版本\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e使用 VARCHAR2 这样的 Oracle 类型是完全可以的,但如果您要一次性存储的数据量超过它的 4,000 字节的极限,情况将会如何? 要完成此任务,您需要 Oracle 的某个 Long 对象 (LOB) 类型,为此您应了解如何使用 PHP API 来处理 LOB。 这对于不熟悉它的人来说是很困难的。\u003c/p\u003e\n\u003cp\u003e在这篇“Oracle+PHP 指南”操作文档中,您将了解可用的 LOB 类型以及与它们相关的问题,然后将探讨 PHP 中常见 LOB 操作示例。\u003c/p\u003e\n\u003cp\u003eOracle 中的 Long 对象\u003c/p\u003e\n\u003cp\u003eOracle 提供了以下 LOB 类型:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBLOB,用于存储二进制数据\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCLOB,用于使用数据库字符集编码存储字符数据\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNCLOB,用于使用国家字符集存储 Unicode 字符数据。 注意,您将在本文中使用的 PHP \u003ca href=\"http://www.php.net/oci8\"\u003eOCI8 …\u003c/a\u003e\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e"
November 12, 2008
在 Oracle 和 PHP 中绑定变量
"\u003cp\u003e作者:Larry Ullman通过绑定变量提高 Oracle 驱动的 PHP 应用程序的速度和安全性。本文相关下载:\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/software/products/database/oracle10g/index.html\"\u003eOracle 数据库 10 \u003cem\u003eg\u003c/em\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html\"\u003eOracle Instant Client\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/products/jdev/htdocs/partners/addins/exchange/php/index.html\"\u003eOracle JDeveloper PHP Extension\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/tech/php/zendcore/index.html\"\u003eZend Core for Oracle\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e想必您一定知道,当前的大多数网站都依赖数据库,只是方式各有不同。 无论您正在构建的站点需要论坛、电子商务组件、包含大量文章和信息还是仅仅从访问者那里获得反馈,您都很可能会通过某种方式并入数据库。 尽管数据库很重要并通常是不可或缺的,但使用它们会影响(通常是不利影响) Web 应用程序的两个方面: 性能和安全性。 了解何时以及如何在 PHP 中绑定变量将对改善这两个问题方面大有帮助。\u003c/p\u003e\n\u003cp\u003e如果您曾经对 Web 项目进行过测试,想必您一定会知道数据库交互通常是要求最高的过程。 在数据库中运行查询时,Oracle 必须先对查询进行分析,以确保它的语法正确,然后才执行实际的查询。 即使您运行多个相似查询也必须先进行分析:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eSELECT * FROM movies WHERE movie_id=1 …\u003c/code\u003e\u003c/pre\u003e"
November 12, 2008
利用 Oracle 和 PHP 轻松处理树
"\u003cp\u003e作者:Nick Bollweg利用一流的查询和函数,轻松处理层次数据。本文相关下载:\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/pub/files/bollweg_easytrees_sample.zip\"\u003e示例代码和清单\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/software/products/database/oracle10g/index.html\"\u003eOracle 数据库 10 \u003cem\u003eg\u003c/em\u003e Express 版\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html\"\u003eOracle 即时客户端\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://oracleimg.com/admin/images/ocom/bullet_5x5.gif\" alt=\"\"\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/products/jdev/htdocs/partners/addins/exchange/php/index.html\"\u003e为 PHP 提供的 Oracle JDeveloper 扩展\u003c/a\u003e2005 年 12 月发表\u003c/p\u003e\n\u003cp\u003e几乎每一种数据驱动的应用程序都依赖于某种形式的、不同复杂程度的层次数据:产品类别中的产品、文件夹中的消息、部门中的员工。当然,某些时候您将需要显示这些数据来创建一个目录、收件箱或组织架构的图表。利用 Oracle 提供的特定供应商的 SQL 扩展和 PHP 在数组处理方面的出色能力,您可以检索并显示一个树,并且以简洁和易于维护的方式对树进行内在的高度优化。\u003c/p\u003e\n\u003cp\u003e因为本文讨论的查询和函数都包含较少的过程,而注重提供更条理清晰,易于理解的代码,因此这篇方法文档在实施的时候以及重构现有代码的时候非常有用。如果您的数据拥有树状的数据形式(目前已经显示或者要取其值),那么本方法文档将会很有价值。使用最新推出的优秀 RDBMS 的用户非常幸运,因为新的特性使得一些棘手的处理层次数据的任务变得更为容易 — 虽然自 Oracle8_i_ 起的 …\u003c/p\u003e"
November 12, 2008
Oracle+PHP 简明手册
"\u003cp\u003e\u003ca href=\"http://www.oracle.com/technology/global/cn/pub/articles/oracle_php_cookbook/index.html\"\u003ehttp://www.oracle.com/technology/global/cn/pub/articles/oracle_php_cookbook/index.html\u003c/a\u003e\u003c/p\u003e"
November 12, 2008
oracle添加用户,赋权,修改密码,解锁
"\u003cp\u003e\u003cstrong\u003e添加用户(随着用户的创建,自动产生与用户同名的schema)\u003c/strong\u003e\nCREATE USER “TESTER” PROFILE “DEFAULT” IDENTIFIED BY “TESTER” DEFAULT TABLESPACE “TESTDATA” TEMPORARY TABLESPACE “TESTTEMP” ACCOUNT UNLOCK;\u003c/p\u003e\n\u003cp\u003e赋权(说实话,这些权限是开发中使用的权限,如果用户生产环境,请自行对于用户创建相应的系统权限)\n据说生产环境下,只是connect resource这样的角色就可以了。\nGRANT “CONNECT” TO “TESTER”;\nGRANT “RESOURCE” TO “TESTER”;\nGRANT “DBA” TO “TESTER”;\nGRANT “EXP_FULL_DATABASE” TO “TESTER”;\nGRANT “IMP_FULL_DATABASE” TO “TESTER”;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e用户修改密码,解锁\u003c/strong\u003e\nALTER USER “SCOTT” IDENTIFIED BY “*\u003cstrong\u003e*\u003c/strong\u003e*”\nALTER USER “SCOTT” ACCOUNT UNLOCK …\u003c/p\u003e"
November 12, 2008
ORACLE用户常用数据字典的查询使用方法
"\u003cp\u003e查看当前用户的缺省表空间\nSQL\u0026gt;select username,default_tablespace from user_users;\u003c/p\u003e\n\u003cp\u003e查看当前用户的角色\nSQL\u0026gt;select * from user_role_privs;\u003c/p\u003e\n\u003cp\u003e查看当前用户的系统权限和表级权限\nSQL\u0026gt;select * from user_sys_privs;\nSQL\u0026gt;select * from user_tab_privs;\u003c/p\u003e\n\u003cp\u003e查看用户下所有的表\nSQL\u0026gt;select * from user_tables;\u003c/p\u003e\n\u003cp\u003e显示用户信息(所属表空间)\nselect default_tablespace,temporary_tablespace\nfrom dba_users where username=’GAME’;\u003c/p\u003e\n\u003cp\u003e**1、用户\n**\n查看当前用户的缺省表空间\nSQL\u0026gt;select username,default_tablespace from user_users;\u003c/p\u003e\n\u003cp\u003e查看当前用户的角色\nSQL\u0026gt;select * from user_role_privs; …\u003c/p\u003e"
November 12, 2008
第二章:oracle中的索引
"\u003cp\u003e1,索引\u003c/p\u003e\n\u003cp\u003e与表关联的可选结构\u003c/p\u003e\n\u003cp\u003e加快SQL语句的执行\u003c/p\u003e\n\u003cp\u003e减少磁盘I/O\u003c/p\u003e\n\u003cp\u003eCREATE INDEX 语句用于创建索引\u003c/p\u003e\n\u003cp\u003e在逻辑上和物理上独立于表中的数据\u003c/p\u003e\n\u003cp\u003eORCALE自动维护索引\u003c/p\u003e\n\u003cp\u003e2,唯一索引\u003c/p\u003e\n\u003cp\u003e确保在定义索引的列中没有重复的值\u003c/p\u003e\n\u003cp\u003eORACLE自动为主键列和唯一键列创建唯一索引\u003c/p\u003e\n\u003cp\u003eCREATE UNIQUE INDEX 语句用于创建唯一索引\u003c/p\u003e\n\u003cp\u003e//创建唯一索引的语法 CREATE UNIQUE INDEX index_name on table_name(column_name);\u003c/p\u003e\n\u003cp\u003e//例:\u003c/p\u003e\n\u003cp\u003eSQL\u0026gt; create unique index idx_stuId on student(studentid);\u003c/p\u003e\n\u003cp\u003e3:组合索引\u003c/p\u003e\n\u003cp\u003e在表的多个列上创建的索引\u003c/p\u003e\n\u003cp\u003e也称为“连接索引”\u003c/p\u003e\n\u003cp\u003e组合索引中的列可以按任意顺序排列\u003c/p\u003e\n\u003cp\u003e对于在WHERE子句中包含多个列的查询,可以提高数据访问速度\u003c/p\u003e\n\u003cp\u003e//\u003c/p\u003e\n\u003cp\u003e创建组合索引的语法\u003c/p\u003e\n\u003cp\u003eCREATE INDEX index_name on table_name(cloumns_list);\u003c/p\u003e\n\u003cp\u003e//例:\u003c/p\u003e\n\u003cp\u003eSQL\u0026gt; create index idx_empNoAndDeptNo on …\u003c/p\u003e"
November 12, 2008
用一个实例讲解oracle数据库中的connect resource权限
"\u003cp\u003econnect resource权限;\u003c/p\u003e\n\u003cp\u003e grant connect,resource to user;\u003c/p\u003e\n\u003cp\u003e 后用户包括的权限:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCONNECT角色: –是授予最终用户的典型权利,最基本的\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e ALTER SESSION –修改会话\u003c/p\u003e\n\u003cp\u003e CREATE CLUSTER –建立聚簇\u003c/p\u003e\n\u003cp\u003e CREATE DATABASE LINK –建立数据库链接\u003c/p\u003e\n\u003cp\u003e CREATE SEQUENCE –建立序列\u003c/p\u003e\n\u003cp\u003e CREATE SESSION –建立会话\u003c/p\u003e\n\u003cp\u003e CREATE SYNONYM –建立同义词\u003c/p\u003e\n\u003cp\u003e CREATE VIEW –建立视图\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRESOURCE角色: –是授予开发人员的\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e CREATE CLUSTER –建立聚簇\u003c/p\u003e\n\u003cp\u003e CREATE PROCEDURE –建立过程\u003c/p\u003e\n\u003cp\u003e CREATE SEQUENCE –建立序列\u003c/p\u003e\n\u003cp\u003e CREATE TABLE –建表\u003c/p\u003e\n\u003cp\u003e CREATE TRIGGER –建立触发器\u003c/p\u003e\n\u003cp\u003e CREATE TYPE –建立类型\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e从dba_sys_privs里可以查到:\u003c/strong\u003e SQL\u0026gt; select …\u003c/p\u003e"
November 12, 2008
找回oracle的户名和密码
"\u003cp\u003eCMD下 输入 SQLPLUS /NOLOG\n然后再在出来的界面中打入 CONN /AS SYSDBA\n这样就会以本地系统登录的用户为信任用户进入数据库的操作\nALTER USER SYS IDENTIFIED BY “123”;\n这样就可以将SYS的密码改为123 或者改SYSTEM的密码,都一样。\u003c/p\u003e\n\u003cp\u003e这样你就可以用SYS用户随心所欲了。\u003c/p\u003e\n\u003cp\u003e另一种是新增用户:\nCREATE USER MaoMao IDENTIFIED BY “123”;\n新增MaoMao后改变她的权限就可以了,改变用户权限的命令是:\nGRANT ROLES TO MaoMao;\u003c/p\u003e\n\u003cp\u003e还有另一种更简便的方法,在本机CMD下 输入 SQLPLUS SYS AS Sysdba\n然后要求输密码时按Enter即可,进入后自行改密码…\u003c/p\u003e"
November 12, 2008
MySQL数据库向Oracle转换时注意若干问题
"\u003cp\u003e 有很多应用项目, 刚起步的时候用MySQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MySQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MySQL迁到 Oracle的需求,应用程序也要相应做一些修改。本人总结出以下几点注意事项,希望对大家有所帮助。\u003c/p\u003e\n\u003cp\u003e 1. 自动增长的数据类型处理 MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。 Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。\u003c/p\u003e\n\u003cp\u003e CREATE SEQUENCE 序列号的名称 (最好是表名 序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL\u003c/p\u003e\n\u003cp\u003e 2. 单引号的处理 MySQL里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串。在插入和修改字符 …\u003c/p\u003e"
November 11, 2008
char和varchar2的区别
"\u003cp\u003e区别:\n1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc”,对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。\n2.CHAR的效率比VARCHAR2的效率稍高。\n3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。\u003c/p\u003e\n\u003cp\u003e何时该用CHAR,何时该用varchar2?\n CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.\nVARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在 …\u003c/p\u003e"
November 11, 2008
如何在Oracle 中实现类似自动增加 ID 的功能?
"\u003cp\u003e我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在ORACLE 中没有这样的 功能,我们\u003c/p\u003e\n\u003cp\u003e可以通过采取以下的功能实现自动增加ID的功能\u003c/p\u003e\n\u003cp\u003e 1.首先创建 sequence\u003c/p\u003e\n\u003cp\u003e create sequence seqmax increment by 1\u003c/p\u003e\n\u003cp\u003e 2.使用方法\u003c/p\u003e\n\u003cp\u003e select seqmax.nextval ID from dual\u003c/p\u003e\n\u003cp\u003e 就得到了一个ID\u003c/p\u003e\n\u003cp\u003e 如果把这个语句放在 触发器中,就可以实现 和 ms sql 的自动增加ID相同的功能!\u003c/p\u003e"
October 15, 2008
mysql忘记root密码的解决方法
"\u003cp\u003e一. MySQL密码的恢复方法之一\n如果忘记了MySQL的root密码,可以用以下方法重新设置:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eKILL掉系统里的MySQL进程;\nkillall -TERM mysqld\u003c/li\u003e\n\u003cli\u003e用以下命令启动MySQL,以不检查权限的方式启动;\nsafe_mysqld –skip-grant-tables \u0026amp;\u003c/li\u003e\n\u003cli\u003e然后用空密码方式使用root用户登录 MySQL;\nmysql -u root\u003c/li\u003e\n\u003cli\u003e修改root用户的密码;\nmysql\u0026gt; update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;\nmysql\u0026gt; flush privileges;\nmysql\u0026gt; quit\n重新启动MySQL,就可以使用新密码登录了。\n二. MySQL密码的恢复方法二\n有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复\u003c/li\u003e\n\u003cli\u003e停止mysqld;\n /etc/init.d/mysql stop\n(您可能有其它的方法,总之停止mysqld的运行就可以 …\u003c/li\u003e\u003c/ol\u003e"
March 25, 2008
使用mysql的replace函数替换字符串
"\u003cp\u003e一直以为只有mysql才有replace这个方法,后来一查,sql server居然也有,看来自己真是无知啊。。。。\u003c/p\u003e\n\u003cp\u003e比如你要将 表 tb1里面的 f1字段的abc替换为def\u003c/p\u003e\n\u003cp\u003eUpdate tb1 SET f1=REPLACE(f1, ‘abc’, ‘def’);\u003c/p\u003e\n\u003cp\u003eREPLACE(str,from_str,to_str)\n在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串:\nmysql\u0026gt; Select REPLACE(‘www.mysql.com’, ‘w’, ‘Ww’);\n -\u0026gt; ‘WwWwWw.mysql.com’\n这个函数是多字节安全的。\u003c/p\u003e\n\u003cp\u003e示例:\nUpdate `dede_addonarticle` SET body = REPLACE ( body,\n ‘’,\n ” );\nUpdate `dede_addonarticle` SET body = REPLACE ( body,\n ‘’,\n ” );\nUpdate …\u003c/p\u003e"
March 4, 2008
MySQL索引分析和优化:
"\u003cp\u003e本文主要讲述了如何加速动态网站的\u003ca href=\"http://www.phpchina.com/viewnews_11670.html\"\u003eMySQL\u003c/a\u003e索引分析和优化。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、什么是索引?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。\u003c/p\u003e\n\u003cp\u003e假设我们创建了一个名为people的表:\u003c/p\u003e\n\u003cp\u003eCreate TABLE people ( peopleid SMALLINT NOT NULL,\u003c/p\u003e\n\u003cp\u003ename CHAR(50) NOT NULL );\u003c/p\u003e\n\u003cp\u003e然后,我们完全随机把1000个不同name值插入到people表。在数据文件中name列没有任何明确的次序。如果我们创建了name列的索引,MySQL将在索引中排序name列,对于索引中的每一项,MySQL在内部为它保存一个数据文件中实际记录所在位置的“指针”。因此,如果我们要查找name等于“Mike”记录 …\u003c/p\u003e"
March 4, 2008
mysql数据类型
"\u003cp\u003e\u003cstrong\u003e1. mysql的数据类型\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e在mysql中有如下几种数据类型:\u003c/p\u003e\n\u003cp\u003e(1)数值型\u003c/p\u003e\n\u003cp\u003e数值是诸如32 或153.4 这样的值。mysql 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“e”、一个符号(“+”或“-”)和一个整数指数来表示。1.24e+12 和23.47e-1 都是合法的科学表示法表示的数。而1.24e12 不是合法的,因为指数前的符号未给出。\u003c/p\u003e\n\u003cp\u003e浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。\u003c/p\u003e\n\u003cp\u003e数值前可放一个负号“-”以表示负值。\u003c/p\u003e\n\u003cp\u003e(2)字符(串)型\u003c/p\u003e\n\u003cp\u003e字符型(也叫字符串型,简称串)是诸如“hello, world!”或“一个馒头引起的血案”这样的值,或者是电话号码87398413这样的值。既可用单引号也可用双引号将串值括起来。\u003c/p\u003e\n\u003cp\u003e初学者往往分不清数值87398143和字符串87398143的区别。都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的87398143是要参与计算的,比如它是金融中的一个货款总额;而字符型的87398143是不参与计算的,只是表示电话号码,这样的还有街道号码、门牌号码等等,它们都不参与 …\u003c/p\u003e"
February 28, 2008
怎么给mysql表的字段添加索引和查询索引呢
"\u003cp\u003e1.普通索引。\n这是最基本的索引,它没有任何限制。它有以下几种创建方式:\n(1)创建索引:Create INDEX indexName ON tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB 和 TEXT 类型,必须指定length,下同。\n(2)修改表结构:Alter tableName ADD INDEX [indexName] ON (tableColumns(length))\n(3)创建表的时候直接指定:Create TABLE tableName ( […], INDEX [indexName] (tableColumns(length)) ;\u003c/p\u003e\n\u003cp\u003e2.唯一索引。\n它与前面的\u0026quot;普通索引\u0026quot;类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:\n(1)创建索引:Create UNIQUE INDEX indexName ON tableName(tableColumns(length))\n(2)修改表结 …\u003c/p\u003e"
December 6, 2007
mysql中 is marked as crashed and last (automatic?)
"\u003cp\u003e使用php+mysql时,用的数据库偶然一次出现了Table ‘./****/tbl_admin is marked as crashed and last (automatic?) repair failed],在此以前使用过一次myisamchk ,结果就出现这个错误提示了,在网上也找不了少办法,但都差不多,myisamchk 表名,可是提示tbl_admin.MYII不存在,在数据库目录里发现这个文件没有了,但同时多出一个tbl_admin.TMD文件,网上查了一下说是一个临时文件的,其实这些是本地的数据,要不要无所谓的,但这个问题我们得解决吧.后来用了以下方面的:\u003c/p\u003e\n\u003cp\u003e先把这个文件做个备份,然后直接把.TMD扩展名改成.MYI了.然后用check table 命令结果成功了,呵呵,大家如果遇到此类问题不妨一试的.\u003cimg src=\"/fckeditor/editor/images/smiley/msn/teeth_smile.gif\" alt=\"\"\u003e\u003c/p\u003e\n\u003cp\u003e另个也可以用其它命令试一下:repair table 表名 和 check table 表名等其它命令的…\u003c/p\u003e"
November 23, 2007
windows下mysql定时自动备份
"\u003cp\u003e对于linux或unix下备份mysql可以说很简介的,但在windows下备份,好像只有用windows自带的计划任务了.\u003c/p\u003e\n\u003cp\u003e==============\n假想环境:\nMySQL 安装位置:C:MySQL\n论坛数据库名称为:bbs\nMySQL root 密码:123456\n数据库备份目的地:D:db_backup\u003c/p\u003e\n\u003cp\u003e程序代码\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e@echo off\nC:MySQLbinmysqladmin -u root –password=123456 shutdown\nC:MySQLbinmysqldump –opt -u root –password=123456 bbs \u0026gt; D:db_backupbbs.sql\nC:MySQLbinmysqld-nt\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e将以上代码保存为backup_db.bat\n然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)\u003c/p\u003e"
November 23, 2007
使用mysqldump定时备份数据库的脚本
"\u003cp\u003e每7天备份一次所有数据,每天备份binlog,也就是增量备份.\u003c/p\u003e\n\u003cp\u003e(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)\u003c/p\u003e\n\u003cp\u003e作者对shell脚本不太熟悉,所以很多地方写的很笨 🙂\u003c/p\u003e\n\u003cp\u003e开启 bin log\u003c/p\u003e\n\u003cp\u003e在\u003ca href=\"/?tag=mysql\"\u003emysql\u003c/a\u003e 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:\u003c/p\u003e\n\u003cp\u003e[mysqld]\nlog-bin\u003c/p\u003e\n\u003cp\u003e这个日志的主要作用是增量备份或者复制(可能还有其他用途).\u003c/p\u003e\n\u003cp\u003e如果想增量备份,必须打开这个日志.\u003c/p\u003e\n\u003cp\u003e对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.\u003c/p\u003e\n\u003cp\u003e在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).\u003c/p\u003e\n\u003cp\u003e所以如果从来不备份,开启日志可能没有必要.\u003c/p\u003e\n\u003cp\u003e完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.\u003c/p\u003e\n\u003cp\u003e完整备份脚本\u003c/p\u003e\n\u003cp\u003e如果数据库数据比较多,我们一般是几天或者一周备份一次数 …\u003c/p\u003e"
November 23, 2007
mysql表索引被破坏的问题及解决
"\u003cp\u003e常见错误信息:\n\u003ca href=\"http://sunxingfang.cn/article.asp?id=210\"\u003eTable xxx is marked as crashed and should be repaired\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e用mysql的用户,经常会遇到这样的问题,检查mysql日志,错误信息为:\u003c/p\u003e\n\u003cp\u003eTable ‘.dedecmsv4dede_archives’ is marked as crashed and should be repaired\u003c/p\u003e\n\u003cp\u003e提示说cms的文章表dede_archives被标记有问题,需要修复。于是赶快恢复历史数据,上网查找原因。最终将问题解决。解决方法如下:\u003c/p\u003e\n\u003cp\u003e找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:\u003c/p\u003e\n\u003cp\u003emyisamchk -c -r ../data/dedecmsv4/dede_archives.MYI\u003c/p\u003e\n\u003cp\u003e然后myisamchk 工具会帮助你恢复数据表的索引。重新启动mysql,问题解决。\u003c/p\u003e\n\u003cp\u003e问题分析:\u003c/p\u003e\n\u003cp\u003e1、错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、 …\u003c/p\u003e"
November 22, 2007
MySql创建用户及授权
"\u003cp\u003eGRANT 语句的语法如下:\nGRANT privileges (columns)\nON what\nTO user IDENTIFIEDBY “password”\nWITH GRANT OPTION\u003c/p\u003e\n\u003cp\u003e对用户授权\u003c/p\u003e\n\u003cp\u003emysql\u0026gt;grant rights on database.* to user@host identified by “pass“;例1:\u003c/p\u003e\n\u003cp\u003e增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003egrant select,insert,update,delete on \u003cem\u003e.\u003c/em\u003e to test1@”%” Identified by “abc”; ON 子句中*.* 说明符的意思是“所有数据库,所有的表”例2:\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e增加一个用户test2密码为abc, 让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003egrant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e例子3\n增加 …\u003c/p\u003e"
September 19, 2007
修改MySQL的默认密码
"\u003cp\u003e对于windows平台来说安装完mysql后,系统就已经默认生成了许可表和账户,你不需要像在Unix平台上那样执行 mysql_install_db脚本来生成帐户和相应权限许可表。\u003c/p\u003e\n\u003cp\u003e但是如果不是用MSI格式来安装MySQL的话,就需要在安装完以后,手动给 root帐户添加新密码,因为默认情况下的root没有开启密码保护功能,如果不重新赋予root帐户密码,那么许多非本机的连接将 无法成功。具体更新密码步骤如下:\u003c/p\u003e\n\u003cp\u003ec:\u0026gt;mysql -u root\u003c/p\u003e\n\u003cp\u003emysql\u0026gt;set passWord for ‘root’@’localhost’=password(‘newpasswd’);\u003c/p\u003e\n\u003cp\u003emysql\u0026gt;set password for ‘root’@’%’=password(‘newpasswd’); //本条可选\u003c/p\u003e\n\u003cp\u003e通过以上设置,root的密码将变为newpasswd这样就完成了根用户root密码的设置工作。\u003c/p\u003e"
August 13, 2007
mysql中DATETIME、DATE 和 TIMESTAMP 类型数据使用
"\u003cp\u003e\u003ccode\u003eDATETIME\u003c/code\u003e、\u003ccode\u003eDATE\u003c/code\u003e 和 \u003ccode\u003eTIMESTAMP\u003c/code\u003e 类型是相似的。这个章节描述了它们的特性以及它们的相似点与不同点。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eDATETIME\u003c/code\u003e 类型可用于需要同时包含日期和时间信息的值。MySQL 以 \u003ccode\u003e'YYYY-MM-DD HH:MM:SS'\u003c/code\u003e 格式检索与显示 \u003ccode\u003eDATETIME\u003c/code\u003e 类型。支持的范围是 \u003ccode\u003e'1000-01-01 00:00:00'\u003c/code\u003e 到 \u003ccode\u003e'9999-12-31 23:59:59'\u003c/code\u003e。(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eDATE\u003c/code\u003e 类型可用于需要一个日期值而不需要时间部分时。MySQL 以 \u003ccode\u003e'YYYY-MM-DD'\u003c/code\u003e 格式检索与显示 \u003ccode\u003eDATE\u003c/code\u003e 值。支持的范围是 \u003ccode\u003e'1000-01-01'\u003c/code\u003e 到 \u003ccode\u003e'9999-12-31'\u003c/code\u003e。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTIMESTAMP\u003c/code\u003e 列类型提供了一种类型,通过它你可以以当前操作的日期和时间自动地标记 \u003ccode\u003eInsert\u003c/code\u003e 或\u003ccode\u003eUpdate\u003c/code\u003e 操作。如果一张表中有多个 \u003ccode\u003eTIMESTAMP\u003c/code\u003e 列,只有第一个被自动更新。\u003c/p\u003e\n\u003cp\u003e自动更新第一个 \u003ccode\u003eTIMESTAMP\u003c/code\u003e 列在下列任何条件下发生:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e列值没有明确地在一个 \u003ccode\u003eInsert\u003c/code\u003e 或 \u003ccode\u003eLOAD DATA INFILE\u003c/code\u003e 语句中被指定。\u003c/li\u003e\n\u003cli\u003e列值 …\u003c/li\u003e\u003c/ul\u003e"
August 8, 2007
从日志中恢复SQLServer数据库到时间点
"\u003cp\u003e DB2中可以使得数据库回复到指定的时间点,SQL Server数据库的Recovery Model为full 或者Bulk copy的时候,是可以从日志来恢复数据库的。实际上日志中记录的一条一条的transact sql语句,恢复数据库的时候会redo这些sql语句。\u003c/p\u003e\n\u003cp\u003e前提条件:myBBS是数据库test中的一个表,\u003c/p\u003e\n\u003cp\u003e 数据库test的Recovery Model为Full,Auto Close,Auto Shrink两个选项未选中。\u003c/p\u003e\n\u003cp\u003e 数据库test的data files和log files均为默认的自动增长状态。\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://www.mx68.com/WebDeveloper/UploadFiles_5122/200603/2006310142248361.jpg\" alt=\"\"\u003e\u003c/p\u003e\n\u003cp\u003eA:2004/10/13,16:00进行数据库备份,backup database test to disk=’d:\\db\\1600.bak’ with init\u003c/p\u003e\n\u003cp\u003eB:2004/10/14,13:00对数据库进行了update,delete等操作;\u003c/p\u003e\n\u003cp\u003eC:2004/10/15,18:00使用delete mybbs where id\u0026gt;300时,语句误写成delete mybbs,因而删除了表mybbs中的所有数据。\u003c/p\u003e\n\u003cp\u003e现 …\u003c/p\u003e"
August 7, 2007
在sql server中改变表的所有者
"\u003cp\u003e 在对数据库进行移植的时候,经常会发现表的所有者发生了改变,而造成数据表拒绝访问,我们可以通过下面的语句来修改数据表的所有者:\u003c/p\u003e\n\u003cp\u003eEXEC sp_changeobjectowner ‘super.article’, ‘dbo’\u003c/p\u003e\n\u003cp\u003e这个我们就可以dbo的身份对数据库中的表进行相应的操作了!\u003c/p\u003e"