Ticket #2619: sqlquery_optimization.diff
| File sqlquery_optimization.diff, 4.5 kB (added by kanru, 4 months ago) |
|---|
-
LogViewer.py
old new 230 230 t1 = time.time() 231 231 for (stamp, name, account, data) in self.logger.query('\ 232 232 select e.stamp, e.name, u.account, ue.data \ 233 from event e, user_event ue, user u\233 from user u, event e, user_event ue \ 234 234 where ue.id_event = e.id and \ 235 235 ue.id_user = u.id and \ 236 236 u.account in (%s) and \ -
plugins_base/Logger.py
old new 91 91 data TEXT 92 92 ) 93 93 ''' 94 CREATE_USER_EVENT_INDEX_EVENT = 'CREATE INDEX ueidevent ON user_event(id_event)' 95 CREATE_USER_EVENT_INDEX_USER = 'CREATE INDEX ueiduser ON user_event(id_user)' 94 96 95 97 USER_EXISTS = 'SELECT id FROM user WHERE account = ?' 96 98 USER_ADD = 'INSERT INTO user(id, account) VALUES(null, ?)' … … 131 133 self.cursor.execute(Logger.CREATE_CONVERSATION) 132 134 self.cursor.execute(Logger.CREATE_EVENT) 133 135 self.cursor.execute(Logger.CREATE_USER_EVENT) 136 self.cursor.execute(Logger.CREATE_USER_EVENT_INDEX_EVENT) 137 self.cursor.execute(Logger.CREATE_USER_EVENT_INDEX_USER) 134 138 self.cursor.execute(Logger.CREATE_CONVERSATION_EVENT) 135 139 self.connection.commit() 136 140 … … 226 230 def get_user_events(self): 227 231 '''return a list of unique user events found on the logs''' 228 232 return [item[0] for item in \ 229 self.query('select distinct name from event, user_event where \233 self.query('select distinct name from user_event, event where \ 230 234 id_event = id order by name')] 231 235 232 236 def get_nick_stamp(self, contact, timestamp): … … 234 238 if no stamp is available''' 235 239 236 240 result = self.query('select e.stamp \ 237 from event e, user_event ue, user u\241 from user u, event e, user_event ue \ 238 242 where ue.id_user = u.id and \ 239 243 ue.id_event = e.id and \ 240 244 e.stamp < %s and \ … … 255 259 return None if no result''' 256 260 257 261 result = self.query('select e.stamp \ 258 from event e, user_event ue, user u\262 from user u, event e, user_event ue \ 259 263 where ue.id_user = u.id and \ 260 264 ue.id_event = e.id and \ 261 265 e.stamp >= %s and \ … … 278 282 return contact 279 283 280 284 return self.query('select ue.data \ 281 from user_event ue, evente \285 from event e, user_event ue \ 282 286 where e.stamp = %f and \ 283 287 ue.id_event = e.id' % (stamp,))[0][0] 284 288 … … 479 483 480 484 query = ''' 481 485 select e.stamp, ue.data 482 from event e, user_event ue, user u486 from user u, event e, user_event ue 483 487 where e.id = ue.id_event and 484 488 u.id = ue.id_user and 485 489 e.name = "status-changed" and … … 497 501 498 502 query = ''' 499 503 select e.stamp, ue.data 500 from event e, user_event ue, user u504 from user u, event e, user_event ue 501 505 where e.id = ue.id_event and 502 506 u.id = ue.id_user and 503 507 e.name = "nick-changed" and … … 515 519 516 520 query = ''' 517 521 select e.stamp, ue.data 518 from event e, user_event ue, user u522 from user u, event e, user_event ue 519 523 where e.id = ue.id_event and 520 524 u.id = ue.id_user and 521 525 e.name = "personal-message-changed" and … … 566 570 567 571 query = ''' 568 572 select e.stamp, ce.data 569 from event e, conversation_event ce, user u573 from user u, event e, conversation_event ce 570 574 where e.id = ce.id_event and 571 575 u.id = ce.id_user and 572 576 e.name = "message" and … … 584 588 585 589 query = ''' 586 590 select e.stamp, ue.data 587 from event e, user_event ue, user u591 from user u, event e, user_event ue 588 592 where e.id = ue.id_event and 589 593 u.id = ue.id_user and 590 594 e.name = "display-picture" and … … 602 606 603 607 query = ''' 604 608 select e.stamp, ce.data 605 from event e, conversation_event ce, user u609 from user u, event e, conversation_event ce 606 610 where e.id = ce.id_event and 607 611 u.id = ce.id_user and 608 612 e.name = "custom-emoticon" and
