An Ecto SQLite3 adapter.
0

Configure Feed

Select the types of activity you want to include in your feed.

Update insertion benchmark (#144)

* Simplify instructions for running benchmark
MIX_ENV=bench doesn't exist, and postgrex and myxql are installed for
MIX_ENV=dev, so we can simplify this
* Bump mysql version from 5.7 to 8
5.7 won't start on arm64 architecture
* Handle decoding of %Time{} struct

authored by

Ievgen Pyrogov and committed by
GitHub
(May 27, 2024, 11:06 PM -0500) 802fbf65 eab38931

+582 -509
+3 -9
bench/README.md
··· 18 18 19 19 To run the benchmarks tests just type in the console: 20 20 21 - ``` 22 - # POSIX-compatible shells 23 - $ MIX_ENV=bench mix run bench/bench_helper.exs 24 - ``` 25 - 26 - ``` 27 - # other shells 28 - $ env MIX_ENV=bench mix run bench/bench_helper.exs 21 + ```sh 22 + mix run bench/bench_helper.exs 29 23 ``` 30 24 31 25 Benchmarks are inside the `scripts/` directory and are divided into two ··· 44 38 The easiest way to setup mysql and postgresql for the benchmarks is via Docker. Run the following commands to get an instance of each running. 45 39 46 40 ``` 47 - docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql:5.7 41 + docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql:8 48 42 docker run -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:13.2 49 43 ```
+119
bench/results/all.md
··· 1 + Benchmark 2 + 3 + Benchmark run from 2024-05-04 10:50:11.956493Z UTC 4 + 5 + ## System 6 + 7 + Benchmark suite executing on the following system: 8 + 9 + <table style="width: 1%"> 10 + <tr> 11 + <th style="width: 1%; white-space: nowrap">Operating System</th> 12 + <td>macOS</td> 13 + </tr><tr> 14 + <th style="white-space: nowrap">CPU Information</th> 15 + <td style="white-space: nowrap">Apple M3 Max</td> 16 + </tr><tr> 17 + <th style="white-space: nowrap">Number of Available Cores</th> 18 + <td style="white-space: nowrap">16</td> 19 + </tr><tr> 20 + <th style="white-space: nowrap">Available Memory</th> 21 + <td style="white-space: nowrap">128 GB</td> 22 + </tr><tr> 23 + <th style="white-space: nowrap">Elixir Version</th> 24 + <td style="white-space: nowrap">1.16.2</td> 25 + </tr><tr> 26 + <th style="white-space: nowrap">Erlang Version</th> 27 + <td style="white-space: nowrap">26.2.4</td> 28 + </tr> 29 + </table> 30 + 31 + ## Configuration 32 + 33 + Benchmark suite executing with the following configuration: 34 + 35 + <table style="width: 1%"> 36 + <tr> 37 + <th style="width: 1%">:time</th> 38 + <td style="white-space: nowrap">10 s</td> 39 + </tr><tr> 40 + <th>:parallel</th> 41 + <td style="white-space: nowrap">1</td> 42 + </tr><tr> 43 + <th>:warmup</th> 44 + <td style="white-space: nowrap">2 s</td> 45 + </tr> 46 + </table> 47 + 48 + ## Statistics 49 + 50 + 51 + 52 + Run Time 53 + 54 + <table style="width: 1%"> 55 + <tr> 56 + <th>Name</th> 57 + <th style="text-align: right">IPS</th> 58 + <th style="text-align: right">Average</th> 59 + <th style="text-align: right">Devitation</th> 60 + <th style="text-align: right">Median</th> 61 + <th style="text-align: right">99th&nbsp;%</th> 62 + </tr> 63 + 64 + <tr> 65 + <td style="white-space: nowrap">MyXQL Repo.all/2</td> 66 + <td style="white-space: nowrap; text-align: right">639.68</td> 67 + <td style="white-space: nowrap; text-align: right">1.56 ms</td> 68 + <td style="white-space: nowrap; text-align: right">&plusmn;12.01%</td> 69 + <td style="white-space: nowrap; text-align: right">1.54 ms</td> 70 + <td style="white-space: nowrap; text-align: right">2.20 ms</td> 71 + </tr> 72 + 73 + <tr> 74 + <td style="white-space: nowrap">SQLite3 Repo.all/2</td> 75 + <td style="white-space: nowrap; text-align: right">465.99</td> 76 + <td style="white-space: nowrap; text-align: right">2.15 ms</td> 77 + <td style="white-space: nowrap; text-align: right">&plusmn;4.82%</td> 78 + <td style="white-space: nowrap; text-align: right">2.13 ms</td> 79 + <td style="white-space: nowrap; text-align: right">2.43 ms</td> 80 + </tr> 81 + 82 + <tr> 83 + <td style="white-space: nowrap">Pg Repo.all/2</td> 84 + <td style="white-space: nowrap; text-align: right">214.16</td> 85 + <td style="white-space: nowrap; text-align: right">4.67 ms</td> 86 + <td style="white-space: nowrap; text-align: right">&plusmn;12.05%</td> 87 + <td style="white-space: nowrap; text-align: right">4.66 ms</td> 88 + <td style="white-space: nowrap; text-align: right">5.86 ms</td> 89 + </tr> 90 + 91 + </table> 92 + 93 + 94 + Run Time Comparison 95 + 96 + <table style="width: 1%"> 97 + <tr> 98 + <th>Name</th> 99 + <th style="text-align: right">IPS</th> 100 + <th style="text-align: right">Slower</th> 101 + <tr> 102 + <td style="white-space: nowrap">MyXQL Repo.all/2</td> 103 + <td style="white-space: nowrap;text-align: right">639.68</td> 104 + <td>&nbsp;</td> 105 + </tr> 106 + 107 + <tr> 108 + <td style="white-space: nowrap">SQLite3 Repo.all/2</td> 109 + <td style="white-space: nowrap; text-align: right">465.99</td> 110 + <td style="white-space: nowrap; text-align: right">1.37x</td> 111 + </tr> 112 + 113 + <tr> 114 + <td style="white-space: nowrap">Pg Repo.all/2</td> 115 + <td style="white-space: nowrap; text-align: right">214.16</td> 116 + <td style="white-space: nowrap; text-align: right">2.99x</td> 117 + </tr> 118 + 119 + </table>
+50 -59
bench/results/insert.md
··· 1 + Benchmark 1 2 2 - # Benchmark 3 - 4 - Benchmark run from 2021-03-24 02:05:58.706995Z UTC 3 + Benchmark run from 2024-05-04 10:49:35.563150Z UTC 5 4 6 5 ## System 7 6 ··· 10 9 <table style="width: 1%"> 11 10 <tr> 12 11 <th style="width: 1%; white-space: nowrap">Operating System</th> 13 - <td>Linux</td> 12 + <td>macOS</td> 14 13 </tr><tr> 15 14 <th style="white-space: nowrap">CPU Information</th> 16 - <td style="white-space: nowrap">AMD Ryzen 7 PRO 4750U with Radeon Graphics</td> 15 + <td style="white-space: nowrap">Apple M3 Max</td> 17 16 </tr><tr> 18 17 <th style="white-space: nowrap">Number of Available Cores</th> 19 18 <td style="white-space: nowrap">16</td> 20 19 </tr><tr> 21 20 <th style="white-space: nowrap">Available Memory</th> 22 - <td style="white-space: nowrap">14.92 GB</td> 21 + <td style="white-space: nowrap">128 GB</td> 23 22 </tr><tr> 24 23 <th style="white-space: nowrap">Elixir Version</th> 25 - <td style="white-space: nowrap">1.11.3</td> 24 + <td style="white-space: nowrap">1.16.2</td> 26 25 </tr><tr> 27 26 <th style="white-space: nowrap">Erlang Version</th> 28 - <td style="white-space: nowrap">23.2.6</td> 27 + <td style="white-space: nowrap">26.2.4</td> 29 28 </tr> 30 29 </table> 31 30 ··· 50 49 51 50 52 51 53 - 54 52 __Input: Changeset__ 55 53 56 54 Run Time ··· 67 65 68 66 <tr> 69 67 <td style="white-space: nowrap">SQLite3 Insert</td> 70 - <td style="white-space: nowrap; text-align: right">7218.07</td> 71 - <td style="white-space: nowrap; text-align: right">0.139 ms</td> 72 - <td style="white-space: nowrap; text-align: right">±43.60%</td> 73 - <td style="white-space: nowrap; text-align: right">0.123 ms</td> 74 - <td style="white-space: nowrap; text-align: right">0.37 ms</td> 68 + <td style="white-space: nowrap; text-align: right">26.72 K</td> 69 + <td style="white-space: nowrap; text-align: right">37.42 &micro;s</td> 70 + <td style="white-space: nowrap; text-align: right">&plusmn;89.66%</td> 71 + <td style="white-space: nowrap; text-align: right">32.88 &micro;s</td> 72 + <td style="white-space: nowrap; text-align: right">74.21 &micro;s</td> 75 73 </tr> 76 74 77 75 <tr> 78 76 <td style="white-space: nowrap">Pg Insert</td> 79 - <td style="white-space: nowrap; text-align: right">421.57</td> 80 - <td style="white-space: nowrap; text-align: right">2.37 ms</td> 81 - <td style="white-space: nowrap; text-align: right">±12.13%</td> 82 - <td style="white-space: nowrap; text-align: right">2.37 ms</td> 83 - <td style="white-space: nowrap; text-align: right">2.90 ms</td> 77 + <td style="white-space: nowrap; text-align: right">9.65 K</td> 78 + <td style="white-space: nowrap; text-align: right">103.63 &micro;s</td> 79 + <td style="white-space: nowrap; text-align: right">&plusmn;68.38%</td> 80 + <td style="white-space: nowrap; text-align: right">102.75 &micro;s</td> 81 + <td style="white-space: nowrap; text-align: right">177.39 &micro;s</td> 84 82 </tr> 85 83 86 84 <tr> 87 85 <td style="white-space: nowrap">MyXQL Insert</td> 88 - <td style="white-space: nowrap; text-align: right">284.25</td> 89 - <td style="white-space: nowrap; text-align: right">3.52 ms</td> 90 - <td style="white-space: nowrap; text-align: right">±13.34%</td> 91 - <td style="white-space: nowrap; text-align: right">3.53 ms</td> 92 - <td style="white-space: nowrap; text-align: right">5.05 ms</td> 86 + <td style="white-space: nowrap; text-align: right">5.49 K</td> 87 + <td style="white-space: nowrap; text-align: right">182.25 &micro;s</td> 88 + <td style="white-space: nowrap; text-align: right">&plusmn;49.23%</td> 89 + <td style="white-space: nowrap; text-align: right">182.33 &micro;s</td> 90 + <td style="white-space: nowrap; text-align: right">233.08 &micro;s</td> 93 91 </tr> 94 92 95 93 </table> 96 94 97 95 98 - Comparison 96 + Run Time Comparison 99 97 100 98 <table style="width: 1%"> 101 99 <tr> ··· 104 102 <th style="text-align: right">Slower</th> 105 103 <tr> 106 104 <td style="white-space: nowrap">SQLite3 Insert</td> 107 - <td style="white-space: nowrap;text-align: right">7218.07</td> 105 + <td style="white-space: nowrap;text-align: right">26.72 K</td> 108 106 <td>&nbsp;</td> 109 107 </tr> 110 108 111 109 <tr> 112 110 <td style="white-space: nowrap">Pg Insert</td> 113 - <td style="white-space: nowrap; text-align: right">421.57</td> 114 - <td style="white-space: nowrap; text-align: right">17.12x</td> 111 + <td style="white-space: nowrap; text-align: right">9.65 K</td> 112 + <td style="white-space: nowrap; text-align: right">2.77x</td> 115 113 </tr> 116 114 117 115 <tr> 118 116 <td style="white-space: nowrap">MyXQL Insert</td> 119 - <td style="white-space: nowrap; text-align: right">284.25</td> 120 - <td style="white-space: nowrap; text-align: right">25.39x</td> 117 + <td style="white-space: nowrap; text-align: right">5.49 K</td> 118 + <td style="white-space: nowrap; text-align: right">4.87x</td> 121 119 </tr> 122 120 123 121 </table> 124 122 125 123 126 - 127 - <hr/> 128 124 129 125 130 126 __Input: Struct__ ··· 143 139 144 140 <tr> 145 141 <td style="white-space: nowrap">SQLite3 Insert</td> 146 - <td style="white-space: nowrap; text-align: right">7765.76</td> 147 - <td style="white-space: nowrap; text-align: right">0.129 ms</td> 148 - <td style="white-space: nowrap; text-align: right">±32.88%</td> 149 - <td style="white-space: nowrap; text-align: right">0.122 ms</td> 150 - <td style="white-space: nowrap; text-align: right">0.28 ms</td> 142 + <td style="white-space: nowrap; text-align: right">26.71 K</td> 143 + <td style="white-space: nowrap; text-align: right">37.44 &micro;s</td> 144 + <td style="white-space: nowrap; text-align: right">&plusmn;87.15%</td> 145 + <td style="white-space: nowrap; text-align: right">32.92 &micro;s</td> 146 + <td style="white-space: nowrap; text-align: right">70.50 &micro;s</td> 151 147 </tr> 152 148 153 149 <tr> 154 150 <td style="white-space: nowrap">Pg Insert</td> 155 - <td style="white-space: nowrap; text-align: right">422.86</td> 156 - <td style="white-space: nowrap; text-align: right">2.36 ms</td> 157 - <td style="white-space: nowrap; text-align: right">±10.49%</td> 158 - <td style="white-space: nowrap; text-align: right">2.36 ms</td> 159 - <td style="white-space: nowrap; text-align: right">3.02 ms</td> 151 + <td style="white-space: nowrap; text-align: right">9.34 K</td> 152 + <td style="white-space: nowrap; text-align: right">107.08 &micro;s</td> 153 + <td style="white-space: nowrap; text-align: right">&plusmn;13.80%</td> 154 + <td style="white-space: nowrap; text-align: right">106.87 &micro;s</td> 155 + <td style="white-space: nowrap; text-align: right">132.46 &micro;s</td> 160 156 </tr> 161 157 162 158 <tr> 163 159 <td style="white-space: nowrap">MyXQL Insert</td> 164 - <td style="white-space: nowrap; text-align: right">274.00</td> 165 - <td style="white-space: nowrap; text-align: right">3.65 ms</td> 166 - <td style="white-space: nowrap; text-align: right">±38.43%</td> 167 - <td style="white-space: nowrap; text-align: right">3.59 ms</td> 168 - <td style="white-space: nowrap; text-align: right">4.75 ms</td> 160 + <td style="white-space: nowrap; text-align: right">5.67 K</td> 161 + <td style="white-space: nowrap; text-align: right">176.45 &micro;s</td> 162 + <td style="white-space: nowrap; text-align: right">&plusmn;70.69%</td> 163 + <td style="white-space: nowrap; text-align: right">176.79 &micro;s</td> 164 + <td style="white-space: nowrap; text-align: right">234.70 &micro;s</td> 169 165 </tr> 170 166 171 167 </table> 172 168 173 169 174 - Comparison 170 + Run Time Comparison 175 171 176 172 <table style="width: 1%"> 177 173 <tr> ··· 180 176 <th style="text-align: right">Slower</th> 181 177 <tr> 182 178 <td style="white-space: nowrap">SQLite3 Insert</td> 183 - <td style="white-space: nowrap;text-align: right">7765.76</td> 179 + <td style="white-space: nowrap;text-align: right">26.71 K</td> 184 180 <td>&nbsp;</td> 185 181 </tr> 186 182 187 183 <tr> 188 184 <td style="white-space: nowrap">Pg Insert</td> 189 - <td style="white-space: nowrap; text-align: right">422.86</td> 190 - <td style="white-space: nowrap; text-align: right">18.37x</td> 185 + <td style="white-space: nowrap; text-align: right">9.34 K</td> 186 + <td style="white-space: nowrap; text-align: right">2.86x</td> 191 187 </tr> 192 188 193 189 <tr> 194 190 <td style="white-space: nowrap">MyXQL Insert</td> 195 - <td style="white-space: nowrap; text-align: right">274.00</td> 196 - <td style="white-space: nowrap; text-align: right">28.34x</td> 191 + <td style="white-space: nowrap; text-align: right">5.67 K</td> 192 + <td style="white-space: nowrap; text-align: right">4.71x</td> 197 193 </tr> 198 194 199 - </table> 200 - 201 - 202 - 203 - <hr/> 204 - 195 + </table>
+160 -177
bench/results/load.md
··· 1 + Benchmark 1 2 2 - # Benchmark 3 - 4 - Benchmark run from 2021-03-24 01:58:24.995583Z UTC 3 + Benchmark run from 2024-05-04 10:39:52.658755Z UTC 5 4 6 5 ## System 7 6 ··· 10 9 <table style="width: 1%"> 11 10 <tr> 12 11 <th style="width: 1%; white-space: nowrap">Operating System</th> 13 - <td>Linux</td> 12 + <td>macOS</td> 14 13 </tr><tr> 15 14 <th style="white-space: nowrap">CPU Information</th> 16 - <td style="white-space: nowrap">AMD Ryzen 7 PRO 4750U with Radeon Graphics</td> 15 + <td style="white-space: nowrap">Apple M3 Max</td> 17 16 </tr><tr> 18 17 <th style="white-space: nowrap">Number of Available Cores</th> 19 18 <td style="white-space: nowrap">16</td> 20 19 </tr><tr> 21 20 <th style="white-space: nowrap">Available Memory</th> 22 - <td style="white-space: nowrap">14.92 GB</td> 21 + <td style="white-space: nowrap">128 GB</td> 23 22 </tr><tr> 24 23 <th style="white-space: nowrap">Elixir Version</th> 25 - <td style="white-space: nowrap">1.11.3</td> 24 + <td style="white-space: nowrap">1.16.2</td> 26 25 </tr><tr> 27 26 <th style="white-space: nowrap">Erlang Version</th> 28 - <td style="white-space: nowrap">23.2.6</td> 27 + <td style="white-space: nowrap">26.2.4</td> 29 28 </tr> 30 29 </table> 31 30 ··· 50 49 51 50 52 51 53 - 54 52 __Input: Big 1 Million__ 55 53 56 54 Run Time ··· 66 64 </tr> 67 65 68 66 <tr> 69 - <td style="white-space: nowrap">SQLite3 Loader</td> 70 - <td style="white-space: nowrap; text-align: right">0.35</td> 71 - <td style="white-space: nowrap; text-align: right">2.82 s</td> 72 - <td style="white-space: nowrap; text-align: right">±15.78%</td> 73 - <td style="white-space: nowrap; text-align: right">2.82 s</td> 74 - <td style="white-space: nowrap; text-align: right">3.13 s</td> 67 + <td style="white-space: nowrap">MyXQL Loader</td> 68 + <td style="white-space: nowrap; text-align: right">1.90</td> 69 + <td style="white-space: nowrap; text-align: right">526.95 ms</td> 70 + <td style="white-space: nowrap; text-align: right">&plusmn;7.52%</td> 71 + <td style="white-space: nowrap; text-align: right">520.79 ms</td> 72 + <td style="white-space: nowrap; text-align: right">590.85 ms</td> 75 73 </tr> 76 74 77 75 <tr> 78 76 <td style="white-space: nowrap">Pg Loader</td> 79 - <td style="white-space: nowrap; text-align: right">0.34</td> 80 - <td style="white-space: nowrap; text-align: right">2.92 s</td> 81 - <td style="white-space: nowrap; text-align: right">±17.97%</td> 82 - <td style="white-space: nowrap; text-align: right">2.92 s</td> 83 - <td style="white-space: nowrap; text-align: right">3.29 s</td> 77 + <td style="white-space: nowrap; text-align: right">1.89</td> 78 + <td style="white-space: nowrap; text-align: right">527.72 ms</td> 79 + <td style="white-space: nowrap; text-align: right">&plusmn;7.17%</td> 80 + <td style="white-space: nowrap; text-align: right">523.29 ms</td> 81 + <td style="white-space: nowrap; text-align: right">589.90 ms</td> 84 82 </tr> 85 83 86 84 <tr> 87 - <td style="white-space: nowrap">MyXQL Loader</td> 88 - <td style="white-space: nowrap; text-align: right">0.33</td> 89 - <td style="white-space: nowrap; text-align: right">2.99 s</td> 90 - <td style="white-space: nowrap; text-align: right">±13.08%</td> 91 - <td style="white-space: nowrap; text-align: right">2.99 s</td> 92 - <td style="white-space: nowrap; text-align: right">3.26 s</td> 85 + <td style="white-space: nowrap">SQLite3 Loader</td> 86 + <td style="white-space: nowrap; text-align: right">1.89</td> 87 + <td style="white-space: nowrap; text-align: right">529.12 ms</td> 88 + <td style="white-space: nowrap; text-align: right">&plusmn;7.67%</td> 89 + <td style="white-space: nowrap; text-align: right">522.49 ms</td> 90 + <td style="white-space: nowrap; text-align: right">594.22 ms</td> 93 91 </tr> 94 92 95 93 </table> 96 94 97 95 98 - Comparison 96 + Run Time Comparison 99 97 100 98 <table style="width: 1%"> 101 99 <tr> ··· 103 101 <th style="text-align: right">IPS</th> 104 102 <th style="text-align: right">Slower</th> 105 103 <tr> 106 - <td style="white-space: nowrap">SQLite3 Loader</td> 107 - <td style="white-space: nowrap;text-align: right">0.35</td> 104 + <td style="white-space: nowrap">MyXQL Loader</td> 105 + <td style="white-space: nowrap;text-align: right">1.90</td> 108 106 <td>&nbsp;</td> 109 107 </tr> 110 108 111 109 <tr> 112 110 <td style="white-space: nowrap">Pg Loader</td> 113 - <td style="white-space: nowrap; text-align: right">0.34</td> 114 - <td style="white-space: nowrap; text-align: right">1.04x</td> 111 + <td style="white-space: nowrap; text-align: right">1.89</td> 112 + <td style="white-space: nowrap; text-align: right">1.0x</td> 115 113 </tr> 116 114 117 115 <tr> 118 - <td style="white-space: nowrap">MyXQL Loader</td> 119 - <td style="white-space: nowrap; text-align: right">0.33</td> 120 - <td style="white-space: nowrap; text-align: right">1.06x</td> 116 + <td style="white-space: nowrap">SQLite3 Loader</td> 117 + <td style="white-space: nowrap; text-align: right">1.89</td> 118 + <td style="white-space: nowrap; text-align: right">1.0x</td> 121 119 </tr> 122 120 123 121 </table> 124 122 125 123 126 - 127 - <hr/> 128 124 129 125 130 126 __Input: Date attr__ ··· 142 138 </tr> 143 139 144 140 <tr> 145 - <td style="white-space: nowrap">Pg Loader</td> 146 - <td style="white-space: nowrap; text-align: right">4.61</td> 147 - <td style="white-space: nowrap; text-align: right">217.08 ms</td> 148 - <td style="white-space: nowrap; text-align: right">±13.97%</td> 149 - <td style="white-space: nowrap; text-align: right">214.42 ms</td> 150 - <td style="white-space: nowrap; text-align: right">271.56 ms</td> 141 + <td style="white-space: nowrap">MyXQL Loader</td> 142 + <td style="white-space: nowrap; text-align: right">26.37</td> 143 + <td style="white-space: nowrap; text-align: right">37.93 ms</td> 144 + <td style="white-space: nowrap; text-align: right">&plusmn;7.64%</td> 145 + <td style="white-space: nowrap; text-align: right">37.53 ms</td> 146 + <td style="white-space: nowrap; text-align: right">48.13 ms</td> 151 147 </tr> 152 148 153 149 <tr> 154 - <td style="white-space: nowrap">MyXQL Loader</td> 155 - <td style="white-space: nowrap; text-align: right">4.56</td> 156 - <td style="white-space: nowrap; text-align: right">219.25 ms</td> 157 - <td style="white-space: nowrap; text-align: right">±18.19%</td> 158 - <td style="white-space: nowrap; text-align: right">210.43 ms</td> 159 - <td style="white-space: nowrap; text-align: right">300.02 ms</td> 150 + <td style="white-space: nowrap">Pg Loader</td> 151 + <td style="white-space: nowrap; text-align: right">25.98</td> 152 + <td style="white-space: nowrap; text-align: right">38.49 ms</td> 153 + <td style="white-space: nowrap; text-align: right">&plusmn;7.63%</td> 154 + <td style="white-space: nowrap; text-align: right">38.31 ms</td> 155 + <td style="white-space: nowrap; text-align: right">48.20 ms</td> 160 156 </tr> 161 157 162 158 <tr> 163 159 <td style="white-space: nowrap">SQLite3 Loader</td> 164 - <td style="white-space: nowrap; text-align: right">4.49</td> 165 - <td style="white-space: nowrap; text-align: right">222.95 ms</td> 166 - <td style="white-space: nowrap; text-align: right">±15.03%</td> 167 - <td style="white-space: nowrap; text-align: right">232.42 ms</td> 168 - <td style="white-space: nowrap; text-align: right">266.39 ms</td> 160 + <td style="white-space: nowrap; text-align: right">25.91</td> 161 + <td style="white-space: nowrap; text-align: right">38.59 ms</td> 162 + <td style="white-space: nowrap; text-align: right">&plusmn;7.51%</td> 163 + <td style="white-space: nowrap; text-align: right">38.46 ms</td> 164 + <td style="white-space: nowrap; text-align: right">48.29 ms</td> 169 165 </tr> 170 166 171 167 </table> 172 168 173 169 174 - Comparison 170 + Run Time Comparison 175 171 176 172 <table style="width: 1%"> 177 173 <tr> ··· 179 175 <th style="text-align: right">IPS</th> 180 176 <th style="text-align: right">Slower</th> 181 177 <tr> 182 - <td style="white-space: nowrap">Pg Loader</td> 183 - <td style="white-space: nowrap;text-align: right">4.61</td> 178 + <td style="white-space: nowrap">MyXQL Loader</td> 179 + <td style="white-space: nowrap;text-align: right">26.37</td> 184 180 <td>&nbsp;</td> 185 181 </tr> 186 182 187 183 <tr> 188 - <td style="white-space: nowrap">MyXQL Loader</td> 189 - <td style="white-space: nowrap; text-align: right">4.56</td> 184 + <td style="white-space: nowrap">Pg Loader</td> 185 + <td style="white-space: nowrap; text-align: right">25.98</td> 190 186 <td style="white-space: nowrap; text-align: right">1.01x</td> 191 187 </tr> 192 188 193 189 <tr> 194 190 <td style="white-space: nowrap">SQLite3 Loader</td> 195 - <td style="white-space: nowrap; text-align: right">4.49</td> 196 - <td style="white-space: nowrap; text-align: right">1.03x</td> 191 + <td style="white-space: nowrap; text-align: right">25.91</td> 192 + <td style="white-space: nowrap; text-align: right">1.02x</td> 197 193 </tr> 198 194 199 195 </table> 200 196 201 197 202 198 203 - <hr/> 204 - 205 199 206 200 __Input: Medium 100 Thousand__ 207 201 ··· 219 213 220 214 <tr> 221 215 <td style="white-space: nowrap">MyXQL Loader</td> 222 - <td style="white-space: nowrap; text-align: right">4.53</td> 223 - <td style="white-space: nowrap; text-align: right">220.75 ms</td> 224 - <td style="white-space: nowrap; text-align: right">±15.57%</td> 225 - <td style="white-space: nowrap; text-align: right">209.17 ms</td> 226 - <td style="white-space: nowrap; text-align: right">287.22 ms</td> 216 + <td style="white-space: nowrap; text-align: right">26.27</td> 217 + <td style="white-space: nowrap; text-align: right">38.07 ms</td> 218 + <td style="white-space: nowrap; text-align: right">&plusmn;5.01%</td> 219 + <td style="white-space: nowrap; text-align: right">38.36 ms</td> 220 + <td style="white-space: nowrap; text-align: right">42.73 ms</td> 227 221 </tr> 228 222 229 223 <tr> 230 - <td style="white-space: nowrap">Pg Loader</td> 231 - <td style="white-space: nowrap; text-align: right">4.40</td> 232 - <td style="white-space: nowrap; text-align: right">227.35 ms</td> 233 - <td style="white-space: nowrap; text-align: right">±16.30%</td> 234 - <td style="white-space: nowrap; text-align: right">222.39 ms</td> 235 - <td style="white-space: nowrap; text-align: right">335.90 ms</td> 224 + <td style="white-space: nowrap">SQLite3 Loader</td> 225 + <td style="white-space: nowrap; text-align: right">25.64</td> 226 + <td style="white-space: nowrap; text-align: right">39.01 ms</td> 227 + <td style="white-space: nowrap; text-align: right">&plusmn;5.25%</td> 228 + <td style="white-space: nowrap; text-align: right">39.42 ms</td> 229 + <td style="white-space: nowrap; text-align: right">43.28 ms</td> 236 230 </tr> 237 231 238 232 <tr> 239 - <td style="white-space: nowrap">SQLite3 Loader</td> 240 - <td style="white-space: nowrap; text-align: right">4.35</td> 241 - <td style="white-space: nowrap; text-align: right">230.09 ms</td> 242 - <td style="white-space: nowrap; text-align: right">±19.61%</td> 243 - <td style="white-space: nowrap; text-align: right">236.94 ms</td> 244 - <td style="white-space: nowrap; text-align: right">309.96 ms</td> 233 + <td style="white-space: nowrap">Pg Loader</td> 234 + <td style="white-space: nowrap; text-align: right">25.44</td> 235 + <td style="white-space: nowrap; text-align: right">39.31 ms</td> 236 + <td style="white-space: nowrap; text-align: right">&plusmn;6.97%</td> 237 + <td style="white-space: nowrap; text-align: right">39.50 ms</td> 238 + <td style="white-space: nowrap; text-align: right">49.12 ms</td> 245 239 </tr> 246 240 247 241 </table> 248 242 249 243 250 - Comparison 244 + Run Time Comparison 251 245 252 246 <table style="width: 1%"> 253 247 <tr> ··· 256 250 <th style="text-align: right">Slower</th> 257 251 <tr> 258 252 <td style="white-space: nowrap">MyXQL Loader</td> 259 - <td style="white-space: nowrap;text-align: right">4.53</td> 253 + <td style="white-space: nowrap;text-align: right">26.27</td> 260 254 <td>&nbsp;</td> 261 255 </tr> 262 256 263 257 <tr> 264 - <td style="white-space: nowrap">Pg Loader</td> 265 - <td style="white-space: nowrap; text-align: right">4.40</td> 266 - <td style="white-space: nowrap; text-align: right">1.03x</td> 258 + <td style="white-space: nowrap">SQLite3 Loader</td> 259 + <td style="white-space: nowrap; text-align: right">25.64</td> 260 + <td style="white-space: nowrap; text-align: right">1.02x</td> 267 261 </tr> 268 262 269 263 <tr> 270 - <td style="white-space: nowrap">SQLite3 Loader</td> 271 - <td style="white-space: nowrap; text-align: right">4.35</td> 272 - <td style="white-space: nowrap; text-align: right">1.04x</td> 264 + <td style="white-space: nowrap">Pg Loader</td> 265 + <td style="white-space: nowrap; text-align: right">25.44</td> 266 + <td style="white-space: nowrap; text-align: right">1.03x</td> 273 267 </tr> 274 268 275 269 </table> 276 270 277 271 278 272 279 - <hr/> 280 - 281 273 282 274 __Input: Small 1 Thousand__ 283 275 ··· 294 286 </tr> 295 287 296 288 <tr> 297 - <td style="white-space: nowrap">Pg Loader</td> 298 - <td style="white-space: nowrap; text-align: right">883.24</td> 299 - <td style="white-space: nowrap; text-align: right">1.13 ms</td> 300 - <td style="white-space: nowrap; text-align: right">±62.88%</td> 301 - <td style="white-space: nowrap; text-align: right">0.93 ms</td> 302 - <td style="white-space: nowrap; text-align: right">2.71 ms</td> 289 + <td style="white-space: nowrap">MyXQL Loader</td> 290 + <td style="white-space: nowrap; text-align: right">2.95 K</td> 291 + <td style="white-space: nowrap; text-align: right">339.32 &micro;s</td> 292 + <td style="white-space: nowrap; text-align: right">&plusmn;13.05%</td> 293 + <td style="white-space: nowrap; text-align: right">330.33 &micro;s</td> 294 + <td style="white-space: nowrap; text-align: right">493.99 &micro;s</td> 303 295 </tr> 304 296 305 297 <tr> 306 - <td style="white-space: nowrap">SQLite3 Loader</td> 307 - <td style="white-space: nowrap; text-align: right">873.53</td> 308 - <td style="white-space: nowrap; text-align: right">1.14 ms</td> 309 - <td style="white-space: nowrap; text-align: right">±60.06%</td> 310 - <td style="white-space: nowrap; text-align: right">0.92 ms</td> 311 - <td style="white-space: nowrap; text-align: right">2.90 ms</td> 298 + <td style="white-space: nowrap">Pg Loader</td> 299 + <td style="white-space: nowrap; text-align: right">2.92 K</td> 300 + <td style="white-space: nowrap; text-align: right">342.75 &micro;s</td> 301 + <td style="white-space: nowrap; text-align: right">&plusmn;13.24%</td> 302 + <td style="white-space: nowrap; text-align: right">332.17 &micro;s</td> 303 + <td style="white-space: nowrap; text-align: right">499.14 &micro;s</td> 312 304 </tr> 313 305 314 306 <tr> 315 - <td style="white-space: nowrap">MyXQL Loader</td> 316 - <td style="white-space: nowrap; text-align: right">862.33</td> 317 - <td style="white-space: nowrap; text-align: right">1.16 ms</td> 318 - <td style="white-space: nowrap; text-align: right">±62.27%</td> 319 - <td style="white-space: nowrap; text-align: right">0.92 ms</td> 320 - <td style="white-space: nowrap; text-align: right">2.77 ms</td> 307 + <td style="white-space: nowrap">SQLite3 Loader</td> 308 + <td style="white-space: nowrap; text-align: right">2.91 K</td> 309 + <td style="white-space: nowrap; text-align: right">343.63 &micro;s</td> 310 + <td style="white-space: nowrap; text-align: right">&plusmn;12.64%</td> 311 + <td style="white-space: nowrap; text-align: right">330.21 &micro;s</td> 312 + <td style="white-space: nowrap; text-align: right">495.04 &micro;s</td> 321 313 </tr> 322 314 323 315 </table> 324 316 325 317 326 - Comparison 318 + Run Time Comparison 327 319 328 320 <table style="width: 1%"> 329 321 <tr> ··· 331 323 <th style="text-align: right">IPS</th> 332 324 <th style="text-align: right">Slower</th> 333 325 <tr> 334 - <td style="white-space: nowrap">Pg Loader</td> 335 - <td style="white-space: nowrap;text-align: right">883.24</td> 326 + <td style="white-space: nowrap">MyXQL Loader</td> 327 + <td style="white-space: nowrap;text-align: right">2.95 K</td> 336 328 <td>&nbsp;</td> 337 329 </tr> 338 330 339 331 <tr> 340 - <td style="white-space: nowrap">SQLite3 Loader</td> 341 - <td style="white-space: nowrap; text-align: right">873.53</td> 332 + <td style="white-space: nowrap">Pg Loader</td> 333 + <td style="white-space: nowrap; text-align: right">2.92 K</td> 342 334 <td style="white-space: nowrap; text-align: right">1.01x</td> 343 335 </tr> 344 336 345 337 <tr> 346 - <td style="white-space: nowrap">MyXQL Loader</td> 347 - <td style="white-space: nowrap; text-align: right">862.33</td> 348 - <td style="white-space: nowrap; text-align: right">1.02x</td> 338 + <td style="white-space: nowrap">SQLite3 Loader</td> 339 + <td style="white-space: nowrap; text-align: right">2.91 K</td> 340 + <td style="white-space: nowrap; text-align: right">1.01x</td> 349 341 </tr> 350 342 351 343 </table> 352 344 353 345 354 346 355 - <hr/> 356 - 357 347 358 348 __Input: Time attr__ 359 349 ··· 370 360 </tr> 371 361 372 362 <tr> 373 - <td style="white-space: nowrap">SQLite3 Loader</td> 374 - <td style="white-space: nowrap; text-align: right">3.40</td> 375 - <td style="white-space: nowrap; text-align: right">294.30 ms</td> 376 - <td style="white-space: nowrap; text-align: right">±15.60%</td> 377 - <td style="white-space: nowrap; text-align: right">281.23 ms</td> 378 - <td style="white-space: nowrap; text-align: right">367.65 ms</td> 363 + <td style="white-space: nowrap">MyXQL Loader</td> 364 + <td style="white-space: nowrap; text-align: right">21.75</td> 365 + <td style="white-space: nowrap; text-align: right">45.98 ms</td> 366 + <td style="white-space: nowrap; text-align: right">&plusmn;11.17%</td> 367 + <td style="white-space: nowrap; text-align: right">45.25 ms</td> 368 + <td style="white-space: nowrap; text-align: right">61.90 ms</td> 379 369 </tr> 380 370 381 371 <tr> 382 - <td style="white-space: nowrap">MyXQL Loader</td> 383 - <td style="white-space: nowrap; text-align: right">3.18</td> 384 - <td style="white-space: nowrap; text-align: right">314.55 ms</td> 385 - <td style="white-space: nowrap; text-align: right">±17.11%</td> 386 - <td style="white-space: nowrap; text-align: right">313.35 ms</td> 387 - <td style="white-space: nowrap; text-align: right">415.89 ms</td> 372 + <td style="white-space: nowrap">Pg Loader</td> 373 + <td style="white-space: nowrap; text-align: right">21.43</td> 374 + <td style="white-space: nowrap; text-align: right">46.67 ms</td> 375 + <td style="white-space: nowrap; text-align: right">&plusmn;10.90%</td> 376 + <td style="white-space: nowrap; text-align: right">45.76 ms</td> 377 + <td style="white-space: nowrap; text-align: right">61.66 ms</td> 388 378 </tr> 389 379 390 380 <tr> 391 - <td style="white-space: nowrap">Pg Loader</td> 392 - <td style="white-space: nowrap; text-align: right">3.03</td> 393 - <td style="white-space: nowrap; text-align: right">329.99 ms</td> 394 - <td style="white-space: nowrap; text-align: right">±16.46%</td> 395 - <td style="white-space: nowrap; text-align: right">321.68 ms</td> 396 - <td style="white-space: nowrap; text-align: right">457.42 ms</td> 381 + <td style="white-space: nowrap">SQLite3 Loader</td> 382 + <td style="white-space: nowrap; text-align: right">20.72</td> 383 + <td style="white-space: nowrap; text-align: right">48.26 ms</td> 384 + <td style="white-space: nowrap; text-align: right">&plusmn;9.03%</td> 385 + <td style="white-space: nowrap; text-align: right">48.63 ms</td> 386 + <td style="white-space: nowrap; text-align: right">62.19 ms</td> 397 387 </tr> 398 388 399 389 </table> 400 390 401 391 402 - Comparison 392 + Run Time Comparison 403 393 404 394 <table style="width: 1%"> 405 395 <tr> ··· 407 397 <th style="text-align: right">IPS</th> 408 398 <th style="text-align: right">Slower</th> 409 399 <tr> 410 - <td style="white-space: nowrap">SQLite3 Loader</td> 411 - <td style="white-space: nowrap;text-align: right">3.40</td> 400 + <td style="white-space: nowrap">MyXQL Loader</td> 401 + <td style="white-space: nowrap;text-align: right">21.75</td> 412 402 <td>&nbsp;</td> 413 403 </tr> 414 404 415 405 <tr> 416 - <td style="white-space: nowrap">MyXQL Loader</td> 417 - <td style="white-space: nowrap; text-align: right">3.18</td> 418 - <td style="white-space: nowrap; text-align: right">1.07x</td> 406 + <td style="white-space: nowrap">Pg Loader</td> 407 + <td style="white-space: nowrap; text-align: right">21.43</td> 408 + <td style="white-space: nowrap; text-align: right">1.01x</td> 419 409 </tr> 420 410 421 411 <tr> 422 - <td style="white-space: nowrap">Pg Loader</td> 423 - <td style="white-space: nowrap; text-align: right">3.03</td> 424 - <td style="white-space: nowrap; text-align: right">1.12x</td> 412 + <td style="white-space: nowrap">SQLite3 Loader</td> 413 + <td style="white-space: nowrap; text-align: right">20.72</td> 414 + <td style="white-space: nowrap; text-align: right">1.05x</td> 425 415 </tr> 426 416 427 417 </table> 428 418 429 419 430 - 431 - <hr/> 432 420 433 421 434 422 __Input: UUID attr__ ··· 447 435 448 436 <tr> 449 437 <td style="white-space: nowrap">SQLite3 Loader</td> 450 - <td style="white-space: nowrap; text-align: right">3.61</td> 451 - <td style="white-space: nowrap; text-align: right">277.20 ms</td> 452 - <td style="white-space: nowrap; text-align: right">±16.59%</td> 453 - <td style="white-space: nowrap; text-align: right">266.05 ms</td> 454 - <td style="white-space: nowrap; text-align: right">372.08 ms</td> 438 + <td style="white-space: nowrap; text-align: right">23.23</td> 439 + <td style="white-space: nowrap; text-align: right">43.06 ms</td> 440 + <td style="white-space: nowrap; text-align: right">&plusmn;8.19%</td> 441 + <td style="white-space: nowrap; text-align: right">41.64 ms</td> 442 + <td style="white-space: nowrap; text-align: right">51.14 ms</td> 455 443 </tr> 456 444 457 445 <tr> 458 - <td style="white-space: nowrap">Pg Loader</td> 459 - <td style="white-space: nowrap; text-align: right">2.75</td> 460 - <td style="white-space: nowrap; text-align: right">363.06 ms</td> 461 - <td style="white-space: nowrap; text-align: right">±14.14%</td> 462 - <td style="white-space: nowrap; text-align: right">382.70 ms</td> 463 - <td style="white-space: nowrap; text-align: right">437.37 ms</td> 446 + <td style="white-space: nowrap">MyXQL Loader</td> 447 + <td style="white-space: nowrap; text-align: right">15.19</td> 448 + <td style="white-space: nowrap; text-align: right">65.81 ms</td> 449 + <td style="white-space: nowrap; text-align: right">&plusmn;7.56%</td> 450 + <td style="white-space: nowrap; text-align: right">63.25 ms</td> 451 + <td style="white-space: nowrap; text-align: right">76.27 ms</td> 464 452 </tr> 465 453 466 454 <tr> 467 - <td style="white-space: nowrap">MyXQL Loader</td> 468 - <td style="white-space: nowrap; text-align: right">2.73</td> 469 - <td style="white-space: nowrap; text-align: right">365.91 ms</td> 470 - <td style="white-space: nowrap; text-align: right">±19.81%</td> 471 - <td style="white-space: nowrap; text-align: right">367.23 ms</td> 472 - <td style="white-space: nowrap; text-align: right">515.29 ms</td> 455 + <td style="white-space: nowrap">Pg Loader</td> 456 + <td style="white-space: nowrap; text-align: right">14.89</td> 457 + <td style="white-space: nowrap; text-align: right">67.14 ms</td> 458 + <td style="white-space: nowrap; text-align: right">&plusmn;7.74%</td> 459 + <td style="white-space: nowrap; text-align: right">64.12 ms</td> 460 + <td style="white-space: nowrap; text-align: right">80.65 ms</td> 473 461 </tr> 474 462 475 463 </table> 476 464 477 465 478 - Comparison 466 + Run Time Comparison 479 467 480 468 <table style="width: 1%"> 481 469 <tr> ··· 484 472 <th style="text-align: right">Slower</th> 485 473 <tr> 486 474 <td style="white-space: nowrap">SQLite3 Loader</td> 487 - <td style="white-space: nowrap;text-align: right">3.61</td> 475 + <td style="white-space: nowrap;text-align: right">23.23</td> 488 476 <td>&nbsp;</td> 489 477 </tr> 490 478 491 479 <tr> 492 - <td style="white-space: nowrap">Pg Loader</td> 493 - <td style="white-space: nowrap; text-align: right">2.75</td> 494 - <td style="white-space: nowrap; text-align: right">1.31x</td> 480 + <td style="white-space: nowrap">MyXQL Loader</td> 481 + <td style="white-space: nowrap; text-align: right">15.19</td> 482 + <td style="white-space: nowrap; text-align: right">1.53x</td> 495 483 </tr> 496 484 497 485 <tr> 498 - <td style="white-space: nowrap">MyXQL Loader</td> 499 - <td style="white-space: nowrap; text-align: right">2.73</td> 500 - <td style="white-space: nowrap; text-align: right">1.32x</td> 486 + <td style="white-space: nowrap">Pg Loader</td> 487 + <td style="white-space: nowrap; text-align: right">14.89</td> 488 + <td style="white-space: nowrap; text-align: right">1.56x</td> 501 489 </tr> 502 490 503 - </table> 504 - 505 - 506 - 507 - <hr/> 508 - 491 + </table>
+241 -264
bench/results/to_sql.md
··· 1 + Benchmark 1 2 2 - # Benchmark 3 - 4 - Benchmark run from 2021-03-24 02:02:16.278354Z UTC 3 + Benchmark run from 2024-05-04 10:48:53.108179Z UTC 5 4 6 5 ## System 7 6 ··· 10 9 <table style="width: 1%"> 11 10 <tr> 12 11 <th style="width: 1%; white-space: nowrap">Operating System</th> 13 - <td>Linux</td> 12 + <td>macOS</td> 14 13 </tr><tr> 15 14 <th style="white-space: nowrap">CPU Information</th> 16 - <td style="white-space: nowrap">AMD Ryzen 7 PRO 4750U with Radeon Graphics</td> 15 + <td style="white-space: nowrap">Apple M3 Max</td> 17 16 </tr><tr> 18 17 <th style="white-space: nowrap">Number of Available Cores</th> 19 18 <td style="white-space: nowrap">16</td> 20 19 </tr><tr> 21 20 <th style="white-space: nowrap">Available Memory</th> 22 - <td style="white-space: nowrap">14.92 GB</td> 21 + <td style="white-space: nowrap">128 GB</td> 23 22 </tr><tr> 24 23 <th style="white-space: nowrap">Elixir Version</th> 25 - <td style="white-space: nowrap">1.11.3</td> 24 + <td style="white-space: nowrap">1.16.2</td> 26 25 </tr><tr> 27 26 <th style="white-space: nowrap">Erlang Version</th> 28 - <td style="white-space: nowrap">23.2.6</td> 27 + <td style="white-space: nowrap">26.2.4</td> 29 28 </tr> 30 29 </table> 31 30 ··· 47 46 </table> 48 47 49 48 ## Statistics 50 - 51 49 52 50 53 51 ··· 66 64 </tr> 67 65 68 66 <tr> 69 - <td style="white-space: nowrap">MyXQL Query Builder</td> 70 - <td style="white-space: nowrap; text-align: right">105.28 K</td> 71 - <td style="white-space: nowrap; text-align: right">9.50 μs</td> 72 - <td style="white-space: nowrap; text-align: right">±116.92%</td> 73 - <td style="white-space: nowrap; text-align: right">8.66 μs</td> 74 - <td style="white-space: nowrap; text-align: right">24.79 μs</td> 67 + <td style="white-space: nowrap">Pg Query Builder</td> 68 + <td style="white-space: nowrap; text-align: right">382.74 K</td> 69 + <td style="white-space: nowrap; text-align: right">2.61 &micro;s</td> 70 + <td style="white-space: nowrap; text-align: right">&plusmn;374.25%</td> 71 + <td style="white-space: nowrap; text-align: right">2.38 &micro;s</td> 72 + <td style="white-space: nowrap; text-align: right">3.42 &micro;s</td> 75 73 </tr> 76 74 77 75 <tr> 78 - <td style="white-space: nowrap">Pg Query Builder</td> 79 - <td style="white-space: nowrap; text-align: right">96.97 K</td> 80 - <td style="white-space: nowrap; text-align: right">10.31 μs</td> 81 - <td style="white-space: nowrap; text-align: right">±220.90%</td> 82 - <td style="white-space: nowrap; text-align: right">8.66 μs</td> 83 - <td style="white-space: nowrap; text-align: right">26.75 μs</td> 76 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 77 + <td style="white-space: nowrap; text-align: right">374.17 K</td> 78 + <td style="white-space: nowrap; text-align: right">2.67 &micro;s</td> 79 + <td style="white-space: nowrap; text-align: right">&plusmn;382.43%</td> 80 + <td style="white-space: nowrap; text-align: right">2.46 &micro;s</td> 81 + <td style="white-space: nowrap; text-align: right">3.42 &micro;s</td> 84 82 </tr> 85 83 86 84 <tr> 87 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 88 - <td style="white-space: nowrap; text-align: right">90.46 K</td> 89 - <td style="white-space: nowrap; text-align: right">11.05 μs</td> 90 - <td style="white-space: nowrap; text-align: right">±204.34%</td> 91 - <td style="white-space: nowrap; text-align: right">8.66 μs</td> 92 - <td style="white-space: nowrap; text-align: right">39.53 μs</td> 85 + <td style="white-space: nowrap">MyXQL Query Builder</td> 86 + <td style="white-space: nowrap; text-align: right">360.95 K</td> 87 + <td style="white-space: nowrap; text-align: right">2.77 &micro;s</td> 88 + <td style="white-space: nowrap; text-align: right">&plusmn;360.52%</td> 89 + <td style="white-space: nowrap; text-align: right">2.54 &micro;s</td> 90 + <td style="white-space: nowrap; text-align: right">3.58 &micro;s</td> 93 91 </tr> 94 92 95 93 </table> 96 94 97 95 98 - Comparison 96 + Run Time Comparison 99 97 100 98 <table style="width: 1%"> 101 99 <tr> ··· 103 101 <th style="text-align: right">IPS</th> 104 102 <th style="text-align: right">Slower</th> 105 103 <tr> 106 - <td style="white-space: nowrap">MyXQL Query Builder</td> 107 - <td style="white-space: nowrap;text-align: right">105.28 K</td> 104 + <td style="white-space: nowrap">Pg Query Builder</td> 105 + <td style="white-space: nowrap;text-align: right">382.74 K</td> 108 106 <td>&nbsp;</td> 109 107 </tr> 110 108 111 109 <tr> 112 - <td style="white-space: nowrap">Pg Query Builder</td> 113 - <td style="white-space: nowrap; text-align: right">96.97 K</td> 114 - <td style="white-space: nowrap; text-align: right">1.09x</td> 110 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 111 + <td style="white-space: nowrap; text-align: right">374.17 K</td> 112 + <td style="white-space: nowrap; text-align: right">1.02x</td> 115 113 </tr> 116 114 117 115 <tr> 118 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 119 - <td style="white-space: nowrap; text-align: right">90.46 K</td> 120 - <td style="white-space: nowrap; text-align: right">1.16x</td> 116 + <td style="white-space: nowrap">MyXQL Query Builder</td> 117 + <td style="white-space: nowrap; text-align: right">360.95 K</td> 118 + <td style="white-space: nowrap; text-align: right">1.06x</td> 121 119 </tr> 122 120 123 121 </table> 124 122 125 123 126 - 127 - <hr/> 128 124 129 125 130 126 __Input: Complex Query 4 Joins__ ··· 142 138 </tr> 143 139 144 140 <tr> 145 - <td style="white-space: nowrap">Pg Query Builder</td> 146 - <td style="white-space: nowrap; text-align: right">100.25 K</td> 147 - <td style="white-space: nowrap; text-align: right">9.97 μs</td> 148 - <td style="white-space: nowrap; text-align: right">±92.25%</td> 149 - <td style="white-space: nowrap; text-align: right">9.15 μs</td> 150 - <td style="white-space: nowrap; text-align: right">23.68 μs</td> 141 + <td style="white-space: nowrap">MyXQL Query Builder</td> 142 + <td style="white-space: nowrap; text-align: right">342.45 K</td> 143 + <td style="white-space: nowrap; text-align: right">2.92 &micro;s</td> 144 + <td style="white-space: nowrap; text-align: right">&plusmn;313.75%</td> 145 + <td style="white-space: nowrap; text-align: right">2.67 &micro;s</td> 146 + <td style="white-space: nowrap; text-align: right">4.08 &micro;s</td> 151 147 </tr> 152 148 153 149 <tr> 154 - <td style="white-space: nowrap">MyXQL Query Builder</td> 155 - <td style="white-space: nowrap; text-align: right">98.47 K</td> 156 - <td style="white-space: nowrap; text-align: right">10.16 μs</td> 157 - <td style="white-space: nowrap; text-align: right">±88.64%</td> 158 - <td style="white-space: nowrap; text-align: right">9.22 μs</td> 159 - <td style="white-space: nowrap; text-align: right">28.70 μs</td> 150 + <td style="white-space: nowrap">Pg Query Builder</td> 151 + <td style="white-space: nowrap; text-align: right">340.76 K</td> 152 + <td style="white-space: nowrap; text-align: right">2.93 &micro;s</td> 153 + <td style="white-space: nowrap; text-align: right">&plusmn;350.68%</td> 154 + <td style="white-space: nowrap; text-align: right">2.71 &micro;s</td> 155 + <td style="white-space: nowrap; text-align: right">3.88 &micro;s</td> 160 156 </tr> 161 157 162 158 <tr> 163 159 <td style="white-space: nowrap">SQLite3 Query Builder</td> 164 - <td style="white-space: nowrap; text-align: right">90.40 K</td> 165 - <td style="white-space: nowrap; text-align: right">11.06 μs</td> 166 - <td style="white-space: nowrap; text-align: right">±117.48%</td> 167 - <td style="white-space: nowrap; text-align: right">9.22 μs</td> 168 - <td style="white-space: nowrap; text-align: right">38.69 μs</td> 160 + <td style="white-space: nowrap; text-align: right">336.08 K</td> 161 + <td style="white-space: nowrap; text-align: right">2.98 &micro;s</td> 162 + <td style="white-space: nowrap; text-align: right">&plusmn;328.89%</td> 163 + <td style="white-space: nowrap; text-align: right">2.79 &micro;s</td> 164 + <td style="white-space: nowrap; text-align: right">3.88 &micro;s</td> 169 165 </tr> 170 166 171 167 </table> 172 168 173 169 174 - Comparison 170 + Run Time Comparison 175 171 176 172 <table style="width: 1%"> 177 173 <tr> ··· 179 175 <th style="text-align: right">IPS</th> 180 176 <th style="text-align: right">Slower</th> 181 177 <tr> 182 - <td style="white-space: nowrap">Pg Query Builder</td> 183 - <td style="white-space: nowrap;text-align: right">100.25 K</td> 178 + <td style="white-space: nowrap">MyXQL Query Builder</td> 179 + <td style="white-space: nowrap;text-align: right">342.45 K</td> 184 180 <td>&nbsp;</td> 185 181 </tr> 186 182 187 183 <tr> 188 - <td style="white-space: nowrap">MyXQL Query Builder</td> 189 - <td style="white-space: nowrap; text-align: right">98.47 K</td> 190 - <td style="white-space: nowrap; text-align: right">1.02x</td> 184 + <td style="white-space: nowrap">Pg Query Builder</td> 185 + <td style="white-space: nowrap; text-align: right">340.76 K</td> 186 + <td style="white-space: nowrap; text-align: right">1.0x</td> 191 187 </tr> 192 188 193 189 <tr> 194 190 <td style="white-space: nowrap">SQLite3 Query Builder</td> 195 - <td style="white-space: nowrap; text-align: right">90.40 K</td> 196 - <td style="white-space: nowrap; text-align: right">1.11x</td> 191 + <td style="white-space: nowrap; text-align: right">336.08 K</td> 192 + <td style="white-space: nowrap; text-align: right">1.02x</td> 197 193 </tr> 198 194 199 195 </table> 200 196 201 197 202 - 203 - <hr/> 204 198 205 199 206 200 __Input: Fetch First Registry__ ··· 218 212 </tr> 219 213 220 214 <tr> 221 - <td style="white-space: nowrap">Pg Query Builder</td> 222 - <td style="white-space: nowrap; text-align: right">173.31 K</td> 223 - <td style="white-space: nowrap; text-align: right">5.77 μs</td> 224 - <td style="white-space: nowrap; text-align: right">±389.85%</td> 225 - <td style="white-space: nowrap; text-align: right">4.47 μs</td> 226 - <td style="white-space: nowrap; text-align: right">20.18 μs</td> 215 + <td style="white-space: nowrap">MyXQL Query Builder</td> 216 + <td style="white-space: nowrap; text-align: right">752.12 K</td> 217 + <td style="white-space: nowrap; text-align: right">1.33 &micro;s</td> 218 + <td style="white-space: nowrap; text-align: right">&plusmn;868.39%</td> 219 + <td style="white-space: nowrap; text-align: right">1.17 &micro;s</td> 220 + <td style="white-space: nowrap; text-align: right">1.63 &micro;s</td> 227 221 </tr> 228 222 229 223 <tr> 230 - <td style="white-space: nowrap">MyXQL Query Builder</td> 231 - <td style="white-space: nowrap; text-align: right">173.06 K</td> 232 - <td style="white-space: nowrap; text-align: right">5.78 μs</td> 233 - <td style="white-space: nowrap; text-align: right">±411.02%</td> 234 - <td style="white-space: nowrap; text-align: right">4.82 μs</td> 235 - <td style="white-space: nowrap; text-align: right">16.20 μs</td> 224 + <td style="white-space: nowrap">Pg Query Builder</td> 225 + <td style="white-space: nowrap; text-align: right">721.56 K</td> 226 + <td style="white-space: nowrap; text-align: right">1.39 &micro;s</td> 227 + <td style="white-space: nowrap; text-align: right">&plusmn;820.83%</td> 228 + <td style="white-space: nowrap; text-align: right">1.25 &micro;s</td> 229 + <td style="white-space: nowrap; text-align: right">1.67 &micro;s</td> 236 230 </tr> 237 231 238 232 <tr> 239 233 <td style="white-space: nowrap">SQLite3 Query Builder</td> 240 - <td style="white-space: nowrap; text-align: right">167.17 K</td> 241 - <td style="white-space: nowrap; text-align: right">5.98 μs</td> 242 - <td style="white-space: nowrap; text-align: right">±420.59%</td> 243 - <td style="white-space: nowrap; text-align: right">4.82 μs</td> 244 - <td style="white-space: nowrap; text-align: right">19.42 μs</td> 234 + <td style="white-space: nowrap; text-align: right">703.84 K</td> 235 + <td style="white-space: nowrap; text-align: right">1.42 &micro;s</td> 236 + <td style="white-space: nowrap; text-align: right">&plusmn;817.39%</td> 237 + <td style="white-space: nowrap; text-align: right">1.29 &micro;s</td> 238 + <td style="white-space: nowrap; text-align: right">1.71 &micro;s</td> 245 239 </tr> 246 240 247 241 </table> 248 242 249 243 250 - Comparison 244 + Run Time Comparison 251 245 252 246 <table style="width: 1%"> 253 247 <tr> ··· 255 249 <th style="text-align: right">IPS</th> 256 250 <th style="text-align: right">Slower</th> 257 251 <tr> 258 - <td style="white-space: nowrap">Pg Query Builder</td> 259 - <td style="white-space: nowrap;text-align: right">173.31 K</td> 252 + <td style="white-space: nowrap">MyXQL Query Builder</td> 253 + <td style="white-space: nowrap;text-align: right">752.12 K</td> 260 254 <td>&nbsp;</td> 261 255 </tr> 262 256 263 257 <tr> 264 - <td style="white-space: nowrap">MyXQL Query Builder</td> 265 - <td style="white-space: nowrap; text-align: right">173.06 K</td> 266 - <td style="white-space: nowrap; text-align: right">1.0x</td> 258 + <td style="white-space: nowrap">Pg Query Builder</td> 259 + <td style="white-space: nowrap; text-align: right">721.56 K</td> 260 + <td style="white-space: nowrap; text-align: right">1.04x</td> 267 261 </tr> 268 262 269 263 <tr> 270 264 <td style="white-space: nowrap">SQLite3 Query Builder</td> 271 - <td style="white-space: nowrap; text-align: right">167.17 K</td> 272 - <td style="white-space: nowrap; text-align: right">1.04x</td> 265 + <td style="white-space: nowrap; text-align: right">703.84 K</td> 266 + <td style="white-space: nowrap; text-align: right">1.07x</td> 273 267 </tr> 274 268 275 269 </table> 276 270 277 271 278 272 279 - <hr/> 280 - 281 273 282 274 __Input: Fetch Last Registry__ 283 275 ··· 294 286 </tr> 295 287 296 288 <tr> 297 - <td style="white-space: nowrap">Pg Query Builder</td> 298 - <td style="white-space: nowrap; text-align: right">177.36 K</td> 299 - <td style="white-space: nowrap; text-align: right">5.64 μs</td> 300 - <td style="white-space: nowrap; text-align: right">±446.37%</td> 301 - <td style="white-space: nowrap; text-align: right">4.47 μs</td> 302 - <td style="white-space: nowrap; text-align: right">17.67 μs</td> 289 + <td style="white-space: nowrap">MyXQL Query Builder</td> 290 + <td style="white-space: nowrap; text-align: right">731.59 K</td> 291 + <td style="white-space: nowrap; text-align: right">1.37 &micro;s</td> 292 + <td style="white-space: nowrap; text-align: right">&plusmn;795.20%</td> 293 + <td style="white-space: nowrap; text-align: right">1.21 &micro;s</td> 294 + <td style="white-space: nowrap; text-align: right">1.71 &micro;s</td> 303 295 </tr> 304 296 305 297 <tr> 306 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 307 - <td style="white-space: nowrap; text-align: right">169.74 K</td> 308 - <td style="white-space: nowrap; text-align: right">5.89 μs</td> 309 - <td style="white-space: nowrap; text-align: right">±394.73%</td> 310 - <td style="white-space: nowrap; text-align: right">4.82 μs</td> 311 - <td style="white-space: nowrap; text-align: right">18.16 μs</td> 298 + <td style="white-space: nowrap">Pg Query Builder</td> 299 + <td style="white-space: nowrap; text-align: right">716.25 K</td> 300 + <td style="white-space: nowrap; text-align: right">1.40 &micro;s</td> 301 + <td style="white-space: nowrap; text-align: right">&plusmn;814.43%</td> 302 + <td style="white-space: nowrap; text-align: right">1.25 &micro;s</td> 303 + <td style="white-space: nowrap; text-align: right">1.67 &micro;s</td> 312 304 </tr> 313 305 314 306 <tr> 315 - <td style="white-space: nowrap">MyXQL Query Builder</td> 316 - <td style="white-space: nowrap; text-align: right">162.83 K</td> 317 - <td style="white-space: nowrap; text-align: right">6.14 μs</td> 318 - <td style="white-space: nowrap; text-align: right">±383.32%</td> 319 - <td style="white-space: nowrap; text-align: right">4.82 μs</td> 320 - <td style="white-space: nowrap; text-align: right">22.14 μs</td> 307 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 308 + <td style="white-space: nowrap; text-align: right">707.98 K</td> 309 + <td style="white-space: nowrap; text-align: right">1.41 &micro;s</td> 310 + <td style="white-space: nowrap; text-align: right">&plusmn;839.02%</td> 311 + <td style="white-space: nowrap; text-align: right">1.25 &micro;s</td> 312 + <td style="white-space: nowrap; text-align: right">1.67 &micro;s</td> 321 313 </tr> 322 314 323 315 </table> 324 316 325 317 326 - Comparison 318 + Run Time Comparison 327 319 328 320 <table style="width: 1%"> 329 321 <tr> ··· 331 323 <th style="text-align: right">IPS</th> 332 324 <th style="text-align: right">Slower</th> 333 325 <tr> 334 - <td style="white-space: nowrap">Pg Query Builder</td> 335 - <td style="white-space: nowrap;text-align: right">177.36 K</td> 326 + <td style="white-space: nowrap">MyXQL Query Builder</td> 327 + <td style="white-space: nowrap;text-align: right">731.59 K</td> 336 328 <td>&nbsp;</td> 337 329 </tr> 338 330 339 331 <tr> 340 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 341 - <td style="white-space: nowrap; text-align: right">169.74 K</td> 342 - <td style="white-space: nowrap; text-align: right">1.04x</td> 332 + <td style="white-space: nowrap">Pg Query Builder</td> 333 + <td style="white-space: nowrap; text-align: right">716.25 K</td> 334 + <td style="white-space: nowrap; text-align: right">1.02x</td> 343 335 </tr> 344 336 345 337 <tr> 346 - <td style="white-space: nowrap">MyXQL Query Builder</td> 347 - <td style="white-space: nowrap; text-align: right">162.83 K</td> 348 - <td style="white-space: nowrap; text-align: right">1.09x</td> 338 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 339 + <td style="white-space: nowrap; text-align: right">707.98 K</td> 340 + <td style="white-space: nowrap; text-align: right">1.03x</td> 349 341 </tr> 350 342 351 343 </table> 352 344 353 345 354 - 355 - <hr/> 356 346 357 347 358 348 __Input: Ordinary Delete All__ ··· 370 360 </tr> 371 361 372 362 <tr> 373 - <td style="white-space: nowrap">Pg Query Builder</td> 374 - <td style="white-space: nowrap; text-align: right">335.81 K</td> 375 - <td style="white-space: nowrap; text-align: right">2.98 μs</td> 376 - <td style="white-space: nowrap; text-align: right">±775.40%</td> 377 - <td style="white-space: nowrap; text-align: right">2.03 μs</td> 378 - <td style="white-space: nowrap; text-align: right">9.43 μs</td> 363 + <td style="white-space: nowrap">MyXQL Query Builder</td> 364 + <td style="white-space: nowrap; text-align: right">1.34 M</td> 365 + <td style="white-space: nowrap; text-align: right">747.69 ns</td> 366 + <td style="white-space: nowrap; text-align: right">&plusmn;2442.90%</td> 367 + <td style="white-space: nowrap; text-align: right">666 ns</td> 368 + <td style="white-space: nowrap; text-align: right">917 ns</td> 379 369 </tr> 380 370 381 371 <tr> 382 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 383 - <td style="white-space: nowrap; text-align: right">325.92 K</td> 384 - <td style="white-space: nowrap; text-align: right">3.07 μs</td> 385 - <td style="white-space: nowrap; text-align: right">±948.36%</td> 386 - <td style="white-space: nowrap; text-align: right">2.02 μs</td> 387 - <td style="white-space: nowrap; text-align: right">8.31 μs</td> 372 + <td style="white-space: nowrap">Pg Query Builder</td> 373 + <td style="white-space: nowrap; text-align: right">1.32 M</td> 374 + <td style="white-space: nowrap; text-align: right">758.40 ns</td> 375 + <td style="white-space: nowrap; text-align: right">&plusmn;2490.71%</td> 376 + <td style="white-space: nowrap; text-align: right">667 ns</td> 377 + <td style="white-space: nowrap; text-align: right">875 ns</td> 388 378 </tr> 389 379 390 380 <tr> 391 - <td style="white-space: nowrap">MyXQL Query Builder</td> 392 - <td style="white-space: nowrap; text-align: right">301.67 K</td> 393 - <td style="white-space: nowrap; text-align: right">3.31 μs</td> 394 - <td style="white-space: nowrap; text-align: right">±832.06%</td> 395 - <td style="white-space: nowrap; text-align: right">2.03 μs</td> 396 - <td style="white-space: nowrap; text-align: right">11.59 μs</td> 381 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 382 + <td style="white-space: nowrap; text-align: right">1.31 M</td> 383 + <td style="white-space: nowrap; text-align: right">762.71 ns</td> 384 + <td style="white-space: nowrap; text-align: right">&plusmn;2451.66%</td> 385 + <td style="white-space: nowrap; text-align: right">667 ns</td> 386 + <td style="white-space: nowrap; text-align: right">875 ns</td> 397 387 </tr> 398 388 399 389 </table> 400 390 401 391 402 - Comparison 392 + Run Time Comparison 403 393 404 394 <table style="width: 1%"> 405 395 <tr> ··· 407 397 <th style="text-align: right">IPS</th> 408 398 <th style="text-align: right">Slower</th> 409 399 <tr> 410 - <td style="white-space: nowrap">Pg Query Builder</td> 411 - <td style="white-space: nowrap;text-align: right">335.81 K</td> 400 + <td style="white-space: nowrap">MyXQL Query Builder</td> 401 + <td style="white-space: nowrap;text-align: right">1.34 M</td> 412 402 <td>&nbsp;</td> 413 403 </tr> 414 404 415 405 <tr> 416 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 417 - <td style="white-space: nowrap; text-align: right">325.92 K</td> 418 - <td style="white-space: nowrap; text-align: right">1.03x</td> 406 + <td style="white-space: nowrap">Pg Query Builder</td> 407 + <td style="white-space: nowrap; text-align: right">1.32 M</td> 408 + <td style="white-space: nowrap; text-align: right">1.01x</td> 419 409 </tr> 420 410 421 411 <tr> 422 - <td style="white-space: nowrap">MyXQL Query Builder</td> 423 - <td style="white-space: nowrap; text-align: right">301.67 K</td> 424 - <td style="white-space: nowrap; text-align: right">1.11x</td> 412 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 413 + <td style="white-space: nowrap; text-align: right">1.31 M</td> 414 + <td style="white-space: nowrap; text-align: right">1.02x</td> 425 415 </tr> 426 416 427 417 </table> 428 418 429 419 430 - 431 - <hr/> 432 420 433 421 434 422 __Input: Ordinary Order By__ ··· 446 434 </tr> 447 435 448 436 <tr> 449 - <td style="white-space: nowrap">Pg Query Builder</td> 450 - <td style="white-space: nowrap; text-align: right">186.48 K</td> 451 - <td style="white-space: nowrap; text-align: right">5.36 μs</td> 452 - <td style="white-space: nowrap; text-align: right">±400.39%</td> 453 - <td style="white-space: nowrap; text-align: right">4.40 μs</td> 454 - <td style="white-space: nowrap; text-align: right">17.81 μs</td> 437 + <td style="white-space: nowrap">MyXQL Query Builder</td> 438 + <td style="white-space: nowrap; text-align: right">742.88 K</td> 439 + <td style="white-space: nowrap; text-align: right">1.35 &micro;s</td> 440 + <td style="white-space: nowrap; text-align: right">&plusmn;918.40%</td> 441 + <td style="white-space: nowrap; text-align: right">1.17 &micro;s</td> 442 + <td style="white-space: nowrap; text-align: right">1.67 &micro;s</td> 455 443 </tr> 456 444 457 445 <tr> 458 - <td style="white-space: nowrap">MyXQL Query Builder</td> 459 - <td style="white-space: nowrap; text-align: right">182.02 K</td> 460 - <td style="white-space: nowrap; text-align: right">5.49 μs</td> 461 - <td style="white-space: nowrap; text-align: right">±402.64%</td> 462 - <td style="white-space: nowrap; text-align: right">4.40 μs</td> 463 - <td style="white-space: nowrap; text-align: right">17.39 μs</td> 446 + <td style="white-space: nowrap">Pg Query Builder</td> 447 + <td style="white-space: nowrap; text-align: right">729.59 K</td> 448 + <td style="white-space: nowrap; text-align: right">1.37 &micro;s</td> 449 + <td style="white-space: nowrap; text-align: right">&plusmn;913.47%</td> 450 + <td style="white-space: nowrap; text-align: right">1.21 &micro;s</td> 451 + <td style="white-space: nowrap; text-align: right">1.58 &micro;s</td> 464 452 </tr> 465 453 466 454 <tr> 467 455 <td style="white-space: nowrap">SQLite3 Query Builder</td> 468 - <td style="white-space: nowrap; text-align: right">172.19 K</td> 469 - <td style="white-space: nowrap; text-align: right">5.81 μs</td> 470 - <td style="white-space: nowrap; text-align: right">±427.38%</td> 471 - <td style="white-space: nowrap; text-align: right">4.47 μs</td> 472 - <td style="white-space: nowrap; text-align: right">21.44 μs</td> 456 + <td style="white-space: nowrap; text-align: right">721.11 K</td> 457 + <td style="white-space: nowrap; text-align: right">1.39 &micro;s</td> 458 + <td style="white-space: nowrap; text-align: right">&plusmn;918.31%</td> 459 + <td style="white-space: nowrap; text-align: right">1.21 &micro;s</td> 460 + <td style="white-space: nowrap; text-align: right">1.58 &micro;s</td> 473 461 </tr> 474 462 475 463 </table> 476 464 477 465 478 - Comparison 466 + Run Time Comparison 479 467 480 468 <table style="width: 1%"> 481 469 <tr> ··· 483 471 <th style="text-align: right">IPS</th> 484 472 <th style="text-align: right">Slower</th> 485 473 <tr> 486 - <td style="white-space: nowrap">Pg Query Builder</td> 487 - <td style="white-space: nowrap;text-align: right">186.48 K</td> 474 + <td style="white-space: nowrap">MyXQL Query Builder</td> 475 + <td style="white-space: nowrap;text-align: right">742.88 K</td> 488 476 <td>&nbsp;</td> 489 477 </tr> 490 478 491 479 <tr> 492 - <td style="white-space: nowrap">MyXQL Query Builder</td> 493 - <td style="white-space: nowrap; text-align: right">182.02 K</td> 480 + <td style="white-space: nowrap">Pg Query Builder</td> 481 + <td style="white-space: nowrap; text-align: right">729.59 K</td> 494 482 <td style="white-space: nowrap; text-align: right">1.02x</td> 495 483 </tr> 496 484 497 485 <tr> 498 486 <td style="white-space: nowrap">SQLite3 Query Builder</td> 499 - <td style="white-space: nowrap; text-align: right">172.19 K</td> 500 - <td style="white-space: nowrap; text-align: right">1.08x</td> 487 + <td style="white-space: nowrap; text-align: right">721.11 K</td> 488 + <td style="white-space: nowrap; text-align: right">1.03x</td> 501 489 </tr> 502 490 503 491 </table> 504 492 505 493 506 - 507 - <hr/> 508 494 509 495 510 496 __Input: Ordinary Select All__ ··· 522 508 </tr> 523 509 524 510 <tr> 525 - <td style="white-space: nowrap">Pg Query Builder</td> 526 - <td style="white-space: nowrap; text-align: right">200.19 K</td> 527 - <td style="white-space: nowrap; text-align: right">5.00 μs</td> 528 - <td style="white-space: nowrap; text-align: right">±657.77%</td> 529 - <td style="white-space: nowrap; text-align: right">3.49 μs</td> 530 - <td style="white-space: nowrap; text-align: right">14.88 μs</td> 511 + <td style="white-space: nowrap">MyXQL Query Builder</td> 512 + <td style="white-space: nowrap; text-align: right">838.25 K</td> 513 + <td style="white-space: nowrap; text-align: right">1.19 &micro;s</td> 514 + <td style="white-space: nowrap; text-align: right">&plusmn;1122.54%</td> 515 + <td style="white-space: nowrap; text-align: right">1.04 &micro;s</td> 516 + <td style="white-space: nowrap; text-align: right">1.46 &micro;s</td> 531 517 </tr> 532 518 533 519 <tr> 534 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 535 - <td style="white-space: nowrap; text-align: right">199.77 K</td> 536 - <td style="white-space: nowrap; text-align: right">5.01 μs</td> 537 - <td style="white-space: nowrap; text-align: right">±698.35%</td> 538 - <td style="white-space: nowrap; text-align: right">3.49 μs</td> 539 - <td style="white-space: nowrap; text-align: right">13.90 μs</td> 520 + <td style="white-space: nowrap">Pg Query Builder</td> 521 + <td style="white-space: nowrap; text-align: right">822.53 K</td> 522 + <td style="white-space: nowrap; text-align: right">1.22 &micro;s</td> 523 + <td style="white-space: nowrap; text-align: right">&plusmn;1179.00%</td> 524 + <td style="white-space: nowrap; text-align: right">1.08 &micro;s</td> 525 + <td style="white-space: nowrap; text-align: right">1.38 &micro;s</td> 540 526 </tr> 541 527 542 528 <tr> 543 - <td style="white-space: nowrap">MyXQL Query Builder</td> 544 - <td style="white-space: nowrap; text-align: right">191.70 K</td> 545 - <td style="white-space: nowrap; text-align: right">5.22 μs</td> 546 - <td style="white-space: nowrap; text-align: right">±601.95%</td> 547 - <td style="white-space: nowrap; text-align: right">3.56 μs</td> 548 - <td style="white-space: nowrap; text-align: right">16.06 μs</td> 529 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 530 + <td style="white-space: nowrap; text-align: right">809.74 K</td> 531 + <td style="white-space: nowrap; text-align: right">1.23 &micro;s</td> 532 + <td style="white-space: nowrap; text-align: right">&plusmn;1198.22%</td> 533 + <td style="white-space: nowrap; text-align: right">1.08 &micro;s</td> 534 + <td style="white-space: nowrap; text-align: right">1.42 &micro;s</td> 549 535 </tr> 550 536 551 537 </table> 552 538 553 539 554 - Comparison 540 + Run Time Comparison 555 541 556 542 <table style="width: 1%"> 557 543 <tr> ··· 559 545 <th style="text-align: right">IPS</th> 560 546 <th style="text-align: right">Slower</th> 561 547 <tr> 562 - <td style="white-space: nowrap">Pg Query Builder</td> 563 - <td style="white-space: nowrap;text-align: right">200.19 K</td> 548 + <td style="white-space: nowrap">MyXQL Query Builder</td> 549 + <td style="white-space: nowrap;text-align: right">838.25 K</td> 564 550 <td>&nbsp;</td> 565 551 </tr> 566 552 567 553 <tr> 568 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 569 - <td style="white-space: nowrap; text-align: right">199.77 K</td> 570 - <td style="white-space: nowrap; text-align: right">1.0x</td> 554 + <td style="white-space: nowrap">Pg Query Builder</td> 555 + <td style="white-space: nowrap; text-align: right">822.53 K</td> 556 + <td style="white-space: nowrap; text-align: right">1.02x</td> 571 557 </tr> 572 558 573 559 <tr> 574 - <td style="white-space: nowrap">MyXQL Query Builder</td> 575 - <td style="white-space: nowrap; text-align: right">191.70 K</td> 560 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 561 + <td style="white-space: nowrap; text-align: right">809.74 K</td> 576 562 <td style="white-space: nowrap; text-align: right">1.04x</td> 577 563 </tr> 578 564 579 565 </table> 580 566 581 567 582 - 583 - <hr/> 584 568 585 569 586 570 __Input: Ordinary Update All__ ··· 598 582 </tr> 599 583 600 584 <tr> 601 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 602 - <td style="white-space: nowrap; text-align: right">263.35 K</td> 603 - <td style="white-space: nowrap; text-align: right">3.80 μs</td> 604 - <td style="white-space: nowrap; text-align: right">±1304.70%</td> 605 - <td style="white-space: nowrap; text-align: right">2.86 μs</td> 606 - <td style="white-space: nowrap; text-align: right">10.13 μs</td> 585 + <td style="white-space: nowrap">MyXQL Query Builder</td> 586 + <td style="white-space: nowrap; text-align: right">1.03 M</td> 587 + <td style="white-space: nowrap; text-align: right">971.15 ns</td> 588 + <td style="white-space: nowrap; text-align: right">&plusmn;1801.37%</td> 589 + <td style="white-space: nowrap; text-align: right">834 ns</td> 590 + <td style="white-space: nowrap; text-align: right">1167 ns</td> 607 591 </tr> 608 592 609 593 <tr> 610 - <td style="white-space: nowrap">MyXQL Query Builder</td> 611 - <td style="white-space: nowrap; text-align: right">260.96 K</td> 612 - <td style="white-space: nowrap; text-align: right">3.83 μs</td> 613 - <td style="white-space: nowrap; text-align: right">±760.59%</td> 614 - <td style="white-space: nowrap; text-align: right">2.86 μs</td> 615 - <td style="white-space: nowrap; text-align: right">10.20 μs</td> 594 + <td style="white-space: nowrap">Pg Query Builder</td> 595 + <td style="white-space: nowrap; text-align: right">1.01 M</td> 596 + <td style="white-space: nowrap; text-align: right">990.87 ns</td> 597 + <td style="white-space: nowrap; text-align: right">&plusmn;1533.42%</td> 598 + <td style="white-space: nowrap; text-align: right">875 ns</td> 599 + <td style="white-space: nowrap; text-align: right">1125 ns</td> 616 600 </tr> 617 601 618 602 <tr> 619 - <td style="white-space: nowrap">Pg Query Builder</td> 620 - <td style="white-space: nowrap; text-align: right">249.05 K</td> 621 - <td style="white-space: nowrap; text-align: right">4.02 μs</td> 622 - <td style="white-space: nowrap; text-align: right">±827.04%</td> 623 - <td style="white-space: nowrap; text-align: right">2.86 μs</td> 624 - <td style="white-space: nowrap; text-align: right">12.99 μs</td> 603 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 604 + <td style="white-space: nowrap; text-align: right">1.00 M</td> 605 + <td style="white-space: nowrap; text-align: right">999.05 ns</td> 606 + <td style="white-space: nowrap; text-align: right">&plusmn;1416.75%</td> 607 + <td style="white-space: nowrap; text-align: right">875 ns</td> 608 + <td style="white-space: nowrap; text-align: right">1166 ns</td> 625 609 </tr> 626 610 627 611 </table> 628 612 629 613 630 - Comparison 614 + Run Time Comparison 631 615 632 616 <table style="width: 1%"> 633 617 <tr> ··· 635 619 <th style="text-align: right">IPS</th> 636 620 <th style="text-align: right">Slower</th> 637 621 <tr> 638 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 639 - <td style="white-space: nowrap;text-align: right">263.35 K</td> 622 + <td style="white-space: nowrap">MyXQL Query Builder</td> 623 + <td style="white-space: nowrap;text-align: right">1.03 M</td> 640 624 <td>&nbsp;</td> 641 625 </tr> 642 626 643 627 <tr> 644 - <td style="white-space: nowrap">MyXQL Query Builder</td> 645 - <td style="white-space: nowrap; text-align: right">260.96 K</td> 646 - <td style="white-space: nowrap; text-align: right">1.01x</td> 628 + <td style="white-space: nowrap">Pg Query Builder</td> 629 + <td style="white-space: nowrap; text-align: right">1.01 M</td> 630 + <td style="white-space: nowrap; text-align: right">1.02x</td> 647 631 </tr> 648 632 649 633 <tr> 650 - <td style="white-space: nowrap">Pg Query Builder</td> 651 - <td style="white-space: nowrap; text-align: right">249.05 K</td> 652 - <td style="white-space: nowrap; text-align: right">1.06x</td> 634 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 635 + <td style="white-space: nowrap; text-align: right">1.00 M</td> 636 + <td style="white-space: nowrap; text-align: right">1.03x</td> 653 637 </tr> 654 638 655 639 </table> 656 640 657 641 658 - 659 - <hr/> 660 642 661 643 662 644 __Input: Ordinary Where__ ··· 675 657 676 658 <tr> 677 659 <td style="white-space: nowrap">MyXQL Query Builder</td> 678 - <td style="white-space: nowrap; text-align: right">162.26 K</td> 679 - <td style="white-space: nowrap; text-align: right">6.16 μs</td> 680 - <td style="white-space: nowrap; text-align: right">±343.86%</td> 681 - <td style="white-space: nowrap; text-align: right">5.31 μs</td> 682 - <td style="white-space: nowrap; text-align: right">17.74 μs</td> 660 + <td style="white-space: nowrap; text-align: right">579.57 K</td> 661 + <td style="white-space: nowrap; text-align: right">1.73 &micro;s</td> 662 + <td style="white-space: nowrap; text-align: right">&plusmn;668.48%</td> 663 + <td style="white-space: nowrap; text-align: right">1.54 &micro;s</td> 664 + <td style="white-space: nowrap; text-align: right">2.17 &micro;s</td> 683 665 </tr> 684 666 685 667 <tr> 686 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 687 - <td style="white-space: nowrap; text-align: right">159.31 K</td> 688 - <td style="white-space: nowrap; text-align: right">6.28 μs</td> 689 - <td style="white-space: nowrap; text-align: right">±305.50%</td> 690 - <td style="white-space: nowrap; text-align: right">5.38 μs</td> 691 - <td style="white-space: nowrap; text-align: right">19.35 μs</td> 668 + <td style="white-space: nowrap">Pg Query Builder</td> 669 + <td style="white-space: nowrap; text-align: right">574.41 K</td> 670 + <td style="white-space: nowrap; text-align: right">1.74 &micro;s</td> 671 + <td style="white-space: nowrap; text-align: right">&plusmn;631.02%</td> 672 + <td style="white-space: nowrap; text-align: right">1.58 &micro;s</td> 673 + <td style="white-space: nowrap; text-align: right">2.13 &micro;s</td> 692 674 </tr> 693 675 694 676 <tr> 695 - <td style="white-space: nowrap">Pg Query Builder</td> 696 - <td style="white-space: nowrap; text-align: right">154.28 K</td> 697 - <td style="white-space: nowrap; text-align: right">6.48 μs</td> 698 - <td style="white-space: nowrap; text-align: right">±355.38%</td> 699 - <td style="white-space: nowrap; text-align: right">5.45 μs</td> 700 - <td style="white-space: nowrap; text-align: right">20.04 μs</td> 677 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 678 + <td style="white-space: nowrap; text-align: right">568.60 K</td> 679 + <td style="white-space: nowrap; text-align: right">1.76 &micro;s</td> 680 + <td style="white-space: nowrap; text-align: right">&plusmn;635.93%</td> 681 + <td style="white-space: nowrap; text-align: right">1.62 &micro;s</td> 682 + <td style="white-space: nowrap; text-align: right">2.13 &micro;s</td> 701 683 </tr> 702 684 703 685 </table> 704 686 705 687 706 - Comparison 688 + Run Time Comparison 707 689 708 690 <table style="width: 1%"> 709 691 <tr> ··· 712 694 <th style="text-align: right">Slower</th> 713 695 <tr> 714 696 <td style="white-space: nowrap">MyXQL Query Builder</td> 715 - <td style="white-space: nowrap;text-align: right">162.26 K</td> 697 + <td style="white-space: nowrap;text-align: right">579.57 K</td> 716 698 <td>&nbsp;</td> 717 699 </tr> 718 700 719 701 <tr> 720 - <td style="white-space: nowrap">SQLite3 Query Builder</td> 721 - <td style="white-space: nowrap; text-align: right">159.31 K</td> 722 - <td style="white-space: nowrap; text-align: right">1.02x</td> 702 + <td style="white-space: nowrap">Pg Query Builder</td> 703 + <td style="white-space: nowrap; text-align: right">574.41 K</td> 704 + <td style="white-space: nowrap; text-align: right">1.01x</td> 723 705 </tr> 724 706 725 707 <tr> 726 - <td style="white-space: nowrap">Pg Query Builder</td> 727 - <td style="white-space: nowrap; text-align: right">154.28 K</td> 728 - <td style="white-space: nowrap; text-align: right">1.05x</td> 708 + <td style="white-space: nowrap">SQLite3 Query Builder</td> 709 + <td style="white-space: nowrap; text-align: right">568.60 K</td> 710 + <td style="white-space: nowrap; text-align: right">1.02x</td> 729 711 </tr> 730 712 731 - </table> 732 - 733 - 734 - 735 - <hr/> 736 - 713 + </table>
+4
lib/ecto/adapters/sqlite3/codec.ex
··· 79 79 80 80 def time_decode(nil), do: {:ok, nil} 81 81 82 + def time_decode(%Time{} = value) do 83 + {:ok, value} 84 + end 85 + 82 86 def time_decode(value) do 83 87 case Time.from_iso8601(value) do 84 88 {:ok, _time} = result -> result
+5
test/ecto/adapters/sqlite3/codec_test.exs
··· 116 116 {:ok, time} = Time.from_iso8601("23:50:07.123Z") 117 117 assert {:ok, ^time} = Codec.time_decode("23:50:07.123Z") 118 118 end 119 + 120 + test "struct" do 121 + time = ~T[10:28:14.748721] 122 + assert {:ok, ^time} = Codec.time_decode(time) 123 + end 119 124 end 120 125 121 126 describe ".utc_datetime_decode/1" do