33 lines
623 B
MySQL
33 lines
623 B
MySQL
|
|
PRAGMA journal_mode = OFF;
|
||
|
|
PRAGMA synchronous = OFF;
|
||
|
|
PRAGMA temp_store = MEMORY;
|
||
|
|
|
||
|
|
-- schema
|
||
|
|
CREATE TABLE t (
|
||
|
|
id INTEGER PRIMARY KEY,
|
||
|
|
s TEXT
|
||
|
|
);
|
||
|
|
|
||
|
|
-- bulk insert via recursive CTE (~50k rows)
|
||
|
|
WITH RECURSIVE cnt(x) AS (
|
||
|
|
SELECT 1
|
||
|
|
UNION ALL
|
||
|
|
SELECT x+1 FROM cnt LIMIT 50000
|
||
|
|
)
|
||
|
|
INSERT INTO t(s)
|
||
|
|
SELECT printf('str-%d-%d', x, x*x) FROM cnt;
|
||
|
|
|
||
|
|
-- simple read queries
|
||
|
|
SELECT COUNT(*) FROM t;
|
||
|
|
SELECT SUM(LENGTH(s)) FROM t;
|
||
|
|
|
||
|
|
-- point lookups
|
||
|
|
SELECT s FROM t WHERE id IN (1, 100, 1000, 10000, 40000);
|
||
|
|
|
||
|
|
-- update a slice
|
||
|
|
UPDATE t SET s = s || '-x' WHERE (id % 50) = 0;
|
||
|
|
|
||
|
|
-- final check
|
||
|
|
SELECT COUNT(*) FROM t WHERE s LIKE '%-x';
|
||
|
|
|