查询条件可能是根据编号,也可能是根据时间段,还可能根据字符串,
现在公司经理说要进行分表,我觉得作用不大,顶多是在并发的时候解决一下MySQL表锁定的机制,但是没有根本性的改变查询速率,这里根据不同条件查询,我觉得很迷,想知道根据上述的查询条件,如何进行一个分表规则可以满足上述所有的查询条件,或者这种情况下分表是不是根本并不能解决效率问题?
先找到最慢的10条SQL,然后逐一查看它的执行计划,这样就知道问题出在哪儿了。
百万级数据的查询性能问题,一般索引可以解决。
首先谢谢关注这个问题,好的,我去查询下执行计划相关的知识。请问一张表是不是只能创建一个索引?如果是的话,我这里查询特征很多,索引只能加给一个字段,而查找不用这个查的话,就没用了。
@TimeIsChoice: 哪里小弱智告诉你索引只能加一个字段?一张表能建无数个索引.
索引是只能从一个字段开始里面可以包含所有字段
反正就是索引.好好根据你的业务设计下索引就行了.
@吴瑞祥:公司的同事,是个妹子。当然我也不是做数据库这一块的,所以这方面我的确所知甚少,谢谢了,我觉得加索引应该能解决问题。
@吴瑞祥: 已经解决,原来需要7秒,现在只需要0.02秒,感谢
所以问题出在索引.如果要对字符串做模糊查询.像优化性能.就上搜索引擎吧.
首先谢谢关注这个问题,表并没有加索引,我并不是做数据库这一块的,同事说索引只能给一个字段加,但是现在查询条件可能有多种,分仓库,分地区,时间,id等等。
百万数据查询有索引查询很快的,根据你所说的没有关联其他表,根据索引属性建索引就好了
首先谢谢关注这个问题,我去查一下索引相关的知识,因为并不是做数据库这一块的,之前通过逻辑层分步减过滤了查询记录的数量,但是没有根本解决问题。
1、有多慢?
2、服务器硬件怎样?
3、瓶颈在哪儿?CPU、内存、硬盘(IO)、网络?
4、反正SQL SERVER 几百万条不在话下,当然可能不是数据库的锅,软件写得不好,啥数据库也没用。
1.不分表的话有7秒,分8张表以后是1秒。
2.硬件好像只有500多G的磁盘,我才入职,这个了解的不多。
3.瓶颈在IO
4.软件不是我写的,我来了已经有了,现在是维护,我入职后已经优化了一张表,原来查询7秒,现在只需要1秒。
看到100
万我笑了
大二,也知道要学的的确还很多,毕竟作为学生第一次有机会接触到这么“大”的数据。
@TimeIsChoice: 现在公司经理说要进行分表-------我狂笑
@[秦时明月]: 我大二出来工作,想锻炼自己,矛盾么?公司是我在51job上投简历面试后通过的,另外我面的是Java工程师,不是DBA。我也知道我现在很差,也表明我现在很垃圾,要学的还很多,那你到底想表明什么?
加油,我是DBA, 可以找我