Hello! Can you please provide all rows&columns of "EXPLAIN SELECT ... WHERE A=?" query?
Regards, -- Ilya Kasnacheev чт, 12 нояб. 2020 г. в 20:04, Lieuwe <lieuwe.elger...@novatiq.com>: > I wonder if anyone can shed some light on the Apache Ignite performance I > am > seeing. > > I am running a single node & have a very simple CacheConfiguration > consisting of 4 fields. > > The program is very much like the put-get-example code shipped with Ignite > & > I am doing a few tests to see how fast (how many transactions per second) I > can read & write data to the cache. > > 1: Just incrementing the key and doing ignite::cache::Cache::Put(key, > dataObject) I can push 100K entries in the cache at about 12K TPS > > 2: Doing the same for ignite::cache::Cache::Get(key) yields 150K TPS > > 3: I then use a ignite::cache::query::SqlFieldsQuery & > ignite::cache::query::QueryFieldsCursor to do "SELECT A, B, C, D FROM > MyCache WHERE _key = ?" > Only doing cursor.isValid() && cursor.hasNext() yields 26K TPS > > 4: The last test I do is as above, but instead of the where clause being > '_key = ?' .. I change this to 'A=?'. In other words I use one of the > fields > as a select criteria. I only get a shocking 20 TPS. > > Having an index on field A makes no difference. The size of the cache does > - > when I reduce that to a handful of entries that last rate will go up to > about 2K TPS. > > > My questions: > - There seems to be a big difference between Put & Get .. is that normal? > - There is also big difference between scenario 2 & 3 whilst they are > essentially doing the same thing .. why is SQL having so much overhead? And > example 3 doesn't even parse the columns out of the cursor whereas example > 2 > gives me all 4 columns for the key. > - And most importantly - why the shocking performance in scenario 4? > > Thanks > > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >