日期:2014-05-16  浏览次数:20766 次

咨询个问题,我有18亿条数据,想找个快速的搜索方案
数据格式如下:

column1 column2 column3
xx      xx         abc
xx      xx         bc1
xx      xx         e32
......
.....
....
...
..
.

要求其实是这样,找到 column3是某个特定值的所有列。

然后问题来了,主要是因为数据库的容量太大,18亿条数据,必然有数据是放在磁盘上的,所以导致在遍历过程中必然产生了io请求,最终导致查询变慢。有没有什么有效的办法。

包括硬件的改造。
包括数据存储的改进。
包括软件的改进等。
谢谢。
------最佳解决方案--------------------
引用:
好的,谢谢,你看我的数据结构和应用类型,适合用全文索引吗。


全文检索在类似文本模糊查询上具有极大的优势,如果你是等值查询 哈希散列分区可以使用。
如果文本类型上没有包含关系:如 column3 中有 abc 还有 abcd 这样的话
全文索引在查询abc时 可能会把abcd 查出来。
------其他解决方案--------------------
索引建了吗?
------其他解决方案--------------------
如果你是olap 数据库,建议建立表分区

------其他解决方案--------------------
回2楼,索引,已经有了,但是时间是消耗在io上。
会3楼,表分区也有了,关键是仍然要进行全文检索,所以问题还是回到了io上。

------其他解决方案--------------------
引用:
回2楼,索引,已经有了,但是时间是消耗在io上。
会3楼,表分区也有了,关键是仍然要进行全文检索,所以问题还是回到了io上。


增加服务器内存,增大 databuffer
不要使用普通索引,使用oracle全文索引。
------其他解决方案--------------------
确实没有用全文索引,那问下,全文索引和普通索引相比,能增加多少性能表现。

此外,全文索引能否和表分区联合使用。
------其他解决方案--------------------
引用:
确实没有用全文索引,那问下,全文索引和普通索引相比,能增加多少性能表现。

此外,全文索引能否和表分区联合使用。


全文索引一般用于BI类大数据量的检索,因为它不会自动维护索引(当然可以通过其他方式变换实现)
对于大数据量数据来讲,性能比普通索引提升效果不是一点半点,具体一句话两句话说不清楚,你百度一下吧。
------其他解决方案--------------------
好的,谢谢,你看我的数据结构和应用类型,适合用全文索引吗。
------其他解决方案--------------------
等值和包含关系都有
------其他解决方案--------------------
引用:
等值和包含关系都有

物化视图也可以看看
------其他解决方案--------------------
引用:
等值和包含关系都有

可以用。

------其他解决方案--------------------
用infobright试试。