194403a348
Instead, we use the binary MySQL encoding and copy the data directly into the QVariant of the desired type. This gets rid of the temporary string allocations and greatly improves the performance of the added benchmark. On my machine, the results are: Before: 0.562 msecs per iteration (total: 563, iterations: 1000) 1,922,479.330 instructions per iteration (total: 1,922,479,330, iterations: 1000) After: 0.381 msecs per iteration (total: 381, iterations: 1000) 774,132.957 instructions per iteration (total: 774,132,958, iterations: 1000) Note that the same could be applied to floating point data types in the future. Additionally, special support for MYSQL_TIME structure coult be added to get rid of the string conversions there. To ensure everything keeps working, a new auto test is added as well that verifies the select statements and insertions of integral data into a MySql table works as intended. [ChangeLog][QtSql] Improve performance when reading integer values from MySQL databases via prepared statements. Change-Id: I21dd9277661971ded934546f09535014b63f8eb8 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> |
||
---|---|---|
.. | ||
doc | ||
drivers | ||
kernel | ||
models | ||
README.module | ||
sql.pro |
Before building the Qt library, the Qt SQL module can be enabled for specific databases using 'configure'. 'configure' is located at the top of your QTDIR. Specific databases drivers can be enabled using one of the following options: ./configure [-qt-sql-<driver>] [-plugin-sql-<driver>] or disabled using the following option: ./configure [-no-sql-<driver>] Where <driver> is the name of the driver, for example 'psql'. This will configure the Qt library to compile the specified driver into the Qt lib itself. For example, to build the PostgreSQL driver directly into the Qt library, configure Qt like this: ./configure -qt-sql-psql In addition, you may need to specify an extra include path, as some database drivers require headers for the database they are using, for example: ./configure -qt-sql-psql -I/usr/local/include If instead you need to build the PostgreSQL driver as a dynamically loaded plugin, configure Qt like this: ./configure -plugin-sql-psql To compile drivers as dynamically loaded plugins, see the QTDIR/plugins/src/sqldrivers directory. Use 'configure -help' for a complete list of configure options. See the Qt documentation for a complete list of supported database drivers.