科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道百万记录的库已经建立了索引但还是很慢,请问该如何解决呢

百万记录的库已经建立了索引但还是很慢,请问该如何解决呢

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

百万记录的库已经建立了索引但还是很慢,请问该如何解决?

作者:csdn 来源:csdn 2009年12月17日

关键字: 问答 Java EE java

  • 评论
  • 分享微博
  • 分享邮件

百万记录的库已经建立了索引但还是很慢,请问该如何解决?

 

我想请教大家一个问题
目前准备开发在线进销存软件,想为每一个注册用户分配一个数据库,但大家又说这样不合理
但是如果做成一个库的话,因为每个商家都有几千个产品,这样的话一个产品表的数据很容易就达到了上百万了,我测试了一下,虽然已经建立了索引和全文搜索,但是模糊搜索还是要花近10秒,实在无法接受,大家有什么好的建议吗
测试数据库是mysql 5.0

多级索引。。


或者是你通过一些特征把数据拆成几块,比如按照用户的姓氏,分成几个数据库。分布在不同的数据库中。这样每个数据库的量就小很多了。

多级索引。或者是你通过一些特征把数据拆成几块,比如按照用户的姓氏,分成几个数据库。分布在不同的数据库中。这样每个数据库的量就小很多了。

 

1000K左右的表,ACCESS这种桌面型的数据库,都不会慢得非常慢.(前提是索引用得到) 这个数量的记录,如果非常慢。一般是SQL语句有问题 //我不懂MYSQL,但各种数据库基本的原则是一致的.按你的说明,因为你用的模糊查询,基于这种的SQL,基本上,在信息描述/名称等上的索引,建了也是用不上的. 因为你一般会 where cargo_desc like '%我要找的东西%'. %号在前,基本上DBMS没法用索引了.(除非一些非常非常特殊的设置)就算是1000万的硬件配置,该不快的还是快不了

------------------------------------------------
你肯定有"商家"这样的字段 .

你需要在这个字段上加索引,同时你的SQL需要故意引导DBMS使用到这个索引,可以一上来就过滤剩下几K条记录了.

要留意,这个字段的条件,不应当使用类似

where "商家" like "%123%" //但用 "商家" like '123%' 一般会用上

或,你也不可以使用

where trim("商家") = "abc" //除非数据库有装门的设置,否则字段在函数中是用不上索引的,因为DBMS要每条记录帮你算一次才知道符不符合条件.
 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章