|Anonymous | Login | Signup for a new account||2020-07-10 00:47 UTC|
|Main | My View | View Issues | Change Log | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003433||TestLink||Database General||public||2010-05-05 22:58||2012-06-05 21:07|
|Product Version||1.9 Beta 3|
|Fixed in Version|
|Summary||0003433: get_by_name method of testcase class should not return external id|
|Description||Returning the tc_external_id field from the tcversions table in the get_by_name method from the testcase class makes the response time much slower.|
Benchmarks on our system running MySQL shows that on average, the current implementation of get_by_name takes about 65ms to complete. After removing tcversions and tc_external_id from the query, it takes less than 1ms.
The only place the code seems to rely on tc_external_id being returned from get_by_name is in the test suite: lib/api/test/TestlinkXMLRPCServerTest.php. Also, the getExternalID method in the testcase class can be uised to get this value if required.
|Additional Information||I've uploaded a diff text file with the proposed change.|
|Tags||No tags attached.|
|QA Team - Task Workflow Status|
|Attached Files||diff.txt [^] (1,049 bytes) 2010-05-05 22:58 [Show Content]|
To undertans this figures is important to know DB size.
We can think about adding some option to get less info in order to improve performance, but BLINDLY removing this column is not IMHO the solution
|Our database includes thousands of testcases and millions of executions.|
Apologies in advance for issue necromancy. I've taken over from rtessier in maintaining the testlink instance this issue was found on. Given its age I'd be fine with closing this issue.
I do have one comments though:
Based on the supplied diff a likely cause could be the fact the query is carrying out a cross join with a WHERE clause to pare down the results instead of a smaller join.
Relevant docs: http://dev.mysql.com/doc/refman/5.0/en/join.html [^]
INNER JOIN and , (comma) are semantically equivalent in the absence of a join
condition: both produce a Cartesian product between the specified tables (that
is, each and every row in the first table is joined to each and every row in
the second table).
|2010-05-05 22:58||rtessier||New Issue|
|2010-05-05 22:58||rtessier||File Added: diff.txt|
|2010-05-05 23:57||fman||Note Added: 0009919|
|2010-05-07 04:14||rtessier||Note Added: 0009953|
|2012-06-05 21:07||dsoeder||Note Added: 0016840|
|Copyright © 2000 - 2020 MantisBT Team|