Thanks for the reply. I just have one more doubt, please do clarify this.
Will be there any performance difference between these 2 queries for the above table. 1. select * from ks1.cf1 where status=1; 2. select * from ks1.cf1 where id1=123456 and status=1; where id1 is partition key and status is indexed column as I said above. Could you please tell me the performance difference btwn above 2 queries. Thanks in advance, Techpyaasaa On Tue, Jun 20, 2017 at 9:03 PM, ZAIDI, ASAD A <az1...@att.com> wrote: > Hey there – > > > > Like other suggested before adding more index , look for opportunity to > de-normalize your data model OR create composite keys for your primary > index – if that works for you. > > Secondary index are there so you can leverage them they come with cost. > They’re difficult to manage , as you repair data your secondary index will > NOT be automatically repaired so you’ll need to maintain them > > On each cluster node. Depending on size of your cluster that could be a > significant effort. Be prepared to rebuild your new index (nodetool > rebuild_index) as often as you change the data . performance will > eventually get a hit cause index rebuilding is expensive operation on CPU > .. > > > > See please http://docs.datastax.com/en/cql/3.1/cql/ddl/ddl_when_use_ > index_c.html > > > > > > > > *From:* techpyaasa . [mailto:techpya...@gmail.com] > *Sent:* Tuesday, June 20, 2017 2:30 AM > *To:* ZAIDI, ASAD A <az1...@att.com> > *Cc:* user@cassandra.apache.org > *Subject:* Re: Secondary Index > > > > Hi ZAIDI, > > Thanks for reply. > Sorry I didn't get your line > "You can get away the potential situation by leveraging composite key, if > that is possible for you?" > > How can I get through it?? > > Like I have a table as below > > CREATE TABLE ks1.cf1 (id1 bigint, id2 bigint, resp text, status int, > PRIMARY KEY (id1, id2) > > ) WITH CLUSTERING ORDER BY (id2 ASC) > > > 'status' will have values of 0/1/2/3/4 (4 possible values) , insertions to > table(partition) will happen based on id2 i.e values(id1,id2,resp,status) > > I want to have a filtering/criteria applied on 'status' column too like > select * from ks1.cf1 where id1=123 and status=0; > > How can I achieve this w/o secondary index (on 'status' column )?? > > > > On Tue, Jun 20, 2017 at 12:09 AM, ZAIDI, ASAD A <az1...@att.com> wrote: > > If you’re only creating index so that your query work, think again! > You’ll be storing secondary index on each node , queries involving index > could create issues (slowness!!) down the road the when index on multiple > node Is involved and not maintained! Tables involving a lot of > inserts/delete could easily ruin index performance. > > > > You can get away the potential situation by leveraging composite key, if > that is possible for you? > > > > > > *From:* techpyaasa . [mailto:techpya...@gmail.com] > *Sent:* Monday, June 19, 2017 1:01 PM > *To:* user@cassandra.apache.org > *Subject:* Secondary Index > > > > Hi, > > I want to create Index on already existing table which has more than 3 > GB/node. > We are using c*-2.1.17 with 2 DCs , each DC with 3 groups and each group > has 7 nodes.(Total 42 nodes in cluster) > > So is it ok to create Index on this table now or will it have any problem? > If its ok , how much time it would take for this process? > > > Thanks in advance, > TechPyaasa > > >