mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Renamed --limit to --config, added --help-config, closes #274
Removed the --page_size= argument to datasette serve in favour of:
datasette serve --config default_page_size:50 mydb.db
Added new help section:
$ datasette --help-config
Config options:
default_page_size Default page size for the table view
(default=100)
max_returned_rows Maximum rows that can be returned from a table
or custom query (default=1000)
sql_time_limit_ms Time limit for a SQL query in milliseconds
(default=1000)
default_facet_size Number of values to return for requested facets
(default=30)
facet_time_limit_ms Time limit for calculating a requested facet
(default=200)
facet_suggest_time_limit_ms Time limit for calculating a suggested facet
(default=50)
This commit is contained in:
parent
918de9403e
commit
f6183ff5fa
10 changed files with 142 additions and 95 deletions
|
|
@ -1,51 +0,0 @@
|
|||
Limits
|
||||
======
|
||||
|
||||
To prevent rogue, long-running queries from making a Datasette instance inaccessible to other users, Datasette imposes some limits on the SQL that you can execute.
|
||||
|
||||
sql_time_limit_ms
|
||||
-----------------
|
||||
|
||||
By default, queries have a time limit of one second. If a query takes longer than this to run Datasette will terminate the query and return an error.
|
||||
|
||||
If this time limit is too short for you, you can customize it using the ``sql_time_limit_ms`` limit - for example, to increase it to 3.5 seconds::
|
||||
|
||||
datasette mydatabase.db --limit sql_time_limit_ms:3500
|
||||
|
||||
You can optionally set a lower time limit for an individual query using the ``_timelimit`` query string argument::
|
||||
|
||||
/my-database/my-table?qSpecies=44&_timelimit=100
|
||||
|
||||
This would set the time limit to 100ms for that specific query. This feature is useful if you are working with databases of unknown size and complexity - a query that might make perfect sense for a smaller table could take too long to execute on a table with millions of rows. By setting custom time limits you can execute queries "optimistically" - e.g. give me an exact count of rows matching this query but only if it takes less than 100ms to calculate.
|
||||
|
||||
max_returned_rows
|
||||
-----------------
|
||||
|
||||
Datasette returns a maximum of 1,000 rows of data at a time. If you execute a query that returns more than 1,000 rows, Datasette will return the first 1,000 and include a warning that the result set has been truncated. You can use OFFSET/LIMIT or other methods in your SQL to implement pagination if you need to return more than 1,000 rows.
|
||||
|
||||
You can increase or decrease this limit like so::
|
||||
|
||||
datasette mydatabase.db --limit max_returned_rows:2000
|
||||
|
||||
default_facet_size
|
||||
------------------
|
||||
|
||||
The default number of unique rows returned by :ref:`facets` is 30. You can customize it like this::
|
||||
|
||||
datasette mydatabase.db --limit default_facet_size:50
|
||||
|
||||
facet_time_limit_ms
|
||||
-------------------
|
||||
|
||||
This is the time limit Datasette allows for calculating a facet, which defaults to 200ms::
|
||||
|
||||
datasette mydatabase.db --limit facet_time_limit_ms:1000
|
||||
|
||||
facet_suggest_time_limit_ms
|
||||
---------------------------
|
||||
|
||||
When Datasette calculates suggested facets it needs to run a SQL query for every column in your table. The default for this time limit is 50ms to account for the fact that it needs to run once for every column. If the time limit is exceeded the column will not be suggested as a facet.
|
||||
|
||||
You can increase this time limit like so::
|
||||
|
||||
datasette mydatabase.db --limit facet_suggest_time_limit_ms:500
|
||||
Loading…
Add table
Add a link
Reference in a new issue