|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
刚开始写页面程序,调试完书中的例子。然后就可以尝试编写留言板了,mysql|数据 在一个PHP的服装论坛上看到了如许一个贴子,索引将谜底贴到这里让人人看看,但愿对人人有匡助
quote:
--------------------------------------------------------------------------------
当数据库很大如10万条,1GB巨细时,如何搜刮才高效?
请问版主,我如今在调试一个服装论坛,向数据库中写入了10万多条信息,此时次要的内容都集中在一个表上,有近1GB巨细。
搜刮该服装论坛时很慢,出格是全文搜刮时,即便只用
SELECT * FROM `cdb_posts` WHERE message='本褴褛陈腐的小册子从怀中掏出递给我'
也很慢,在台式机上乃至基本运转不完。但我传闻sun公司的服装论坛(上面有近百个分服装论坛)停止全文搜刮时也不超越20秒,咱们可否做到。
我运转搜刮法式时,cpu和内存占用率都很低,只要硬盘灯一向在闪,我总以为是法式不敷高效,是否是可以把法式写出相似“多线程”,以进步效力。
请版主和各路大侠指教!
感谢。
--------------------------------------------------------------------------------
有人建议它用ORACLE
我感觉有一点人人要注重,那就是假如你让oracle履行一个 select * from xxxx where xxx = 'xxxxxxxxxxxxxx';
这个表有1G的时分相对不会比MYSQL快上几何。
如今的这么多盛行的数据库体系上履行不异的操作时不成能快上良多倍的。
关头在于你的数据库设计。
我在做一个贸易信息的搜刮引擎,在做的过程当中失掉一些经历。以下:
1。 创立摘要表
2。 关于那些数字模式且常常查询的数据必定要创立索引,我不记得在哪里看到一篇贴子说甚么:“不要用那渣滓的索引”.愁闷了N久。这类贴子都有。。哎。
建议: 在where中的用到的尺寸不大的condition普通都要索引。尺寸大的独自表中存储且要用like查询的独自表中存储。
3。 关于有良多了局的时分不要select *... ,先select ID.... 然后获得ID落后行分页掌握,掏出以后页中的ID到数组。。 再履行select * from xxx where ID in(implode(',', $ID数组);
假如失掉的数据还要停止join,请在这条select 语句中来停止。由于如许数据库停止join的选择因子会小良多。
4。关于要全文检索的数据和如今的数据分别出来。以数据库设计中第二范式的模式暗示.在独自表中存储和数据主键对应的信息.
5。给表加上一个primary , int(smallint、tinyint 看要几何条数据).
6。在做好体系后用explain select .... 对体系中耗时的语句停止剖析。看看MYSQL是若何处置这条语句的。
7。假如有能够,把信息分表存储(也可散布在分歧的数据库办事器上)
自己禺见,感觉好的顶一看。。感觉差的就当是看个笑话。。。
__________________
自己回覆的成绩,如无出格注明, 均未测试过....
说说这一个月左右的学习情况和心得吧!我个人认为,既然决定了去做一件事,那就要以认真的态度去对待!既然决定来学习了,那不管当初是抱着怎样的心态来到这个培训班的,都要让自己认真的投入到学习中。 |
|