Hi, Are you sure that you have index for devId field?
Evgenii пн, 8 окт. 2018 г. в 12:23, Justin Ji <[email protected]>: > Hi Alexander - > > I have tried the SQL you suggested, but the performance got worse, I do not > know why? > > 1. "update t_device_module set isOnline=1, mqttTime=" + > System.currentTimeMillis() / 1000 + " where devId in ('0001', '0002', ..., > '2048')"; > The SQL may take 600ms for 2048 records. > > 2."update t_device_module t1 set t1.isOnline=1, t1.mqttTime=" + > System.currentTimeMillis() / 1000 + " where t1.devId in (select table.devId > from table(devId varchar = ?))"; > > cache.query(new SqlFieldsQuery(sql2).setArgs(new > Object[]{clientIds.toArray()})); > > The clientIds is a list which contains 2048 records(equals with above), but > it was executed about 2000ms. > > According to the introduction of > sql-performance-and-usability-considerations > < > https://apacheignite-sql.readme.io/docs/performance-and-debugging#sql-performance-and-usability-considerations> > > : the second SQL is recommended, bucause the first one will not use > indexes. > > My question is why the second one is worse than the first one. > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >
