Add a table to hold only the Symbols

to improve performance.
This commit is contained in:
Joe Tretter
2020-09-23 10:14:12 -05:00
parent 05a55f6434
commit 1fdf705eb5
4 changed files with 14 additions and 2 deletions

View File

@@ -31,7 +31,7 @@ module.exports = compress(async (req, res) => {
if (func === "/getSymbols") { if (func === "/getSymbols") {
console.log("Request for Symbols"); console.log("Request for Symbols");
const db = new Database('./quoteDBs/consolidated.sqlite3', { verbose: console.log }); const db = new Database('./quoteDBs/consolidated.sqlite3', { verbose: console.log });
const stmt = db.prepare("SELECT distinct Symbol FROM OptionQuotes order by 1"); const stmt = db.prepare("SELECT distinct Symbol FROM Symbols order by 1");
let allDates = stmt.all(); let allDates = stmt.all();
//console.log(JSON.stringify(allDates)); //console.log(JSON.stringify(allDates));
db.close(); db.close();

View File

@@ -2,4 +2,8 @@ CREATE TABLE IF NOT EXISTS "OptionQuotes"( "TimeStamp"DateTime DEFAULT CURRENT_T
"Symbol" Text, "Symbol" Text,
"Data" Text); "Data" Text);
CREATE INDEX smbDaTi on OptionQuotes (Symbol,timestamp); CREATE INDEX IF NOT EXISTS smbDaTi on OptionQuotes (Symbol,timestamp);
CREATE TABLE IF NOT EXISTS "Symbols" (
"Symbol" TEXT UNIQUE
);

View File

@@ -13,6 +13,10 @@ ls quoteStore_202*.sqlite3.gz | while read db; do
sqlite3 /tmp/xx.sqlite3 'drop table OptionQuotes;' sqlite3 /tmp/xx.sqlite3 'drop table OptionQuotes;'
sqlite3 /tmp/xx.sqlite3 'alter table tmp rename to OptionQuotes;' sqlite3 /tmp/xx.sqlite3 'alter table tmp rename to OptionQuotes;'
sqlite3 /tmp/xx.sqlite3 '.dump OptionQuotes' | sqlite3 consolidated.sqlite3 sqlite3 /tmp/xx.sqlite3 '.dump OptionQuotes' | sqlite3 consolidated.sqlite3
echo filling symbols table
sqlite3 consolidated.sqlite3 'insert INTO Symbols select DISTINCT Symbol from OptionQuotes where OptionQuotes.Symbol not in (select Symbol from Symbols);'
echo deleting... echo deleting...
rm /tmp/xx.sqlite3 rm /tmp/xx.sqlite3
mv $db processedDBs mv $db processedDBs

View File

@@ -18,6 +18,10 @@ find . -maxdepth 1 -name 'quoteStore_202*.sqlite3.gz' | while read db; do
sqlite3 /tmp/xx.sqlite3 'drop table OptionQuotes;' sqlite3 /tmp/xx.sqlite3 'drop table OptionQuotes;'
sqlite3 /tmp/xx.sqlite3 'alter table tmp rename to OptionQuotes;' sqlite3 /tmp/xx.sqlite3 'alter table tmp rename to OptionQuotes;'
sqlite3 /tmp/xx.sqlite3 '.dump OptionQuotes' | sqlite3 consolidated.sqlite3 sqlite3 /tmp/xx.sqlite3 '.dump OptionQuotes' | sqlite3 consolidated.sqlite3
echo filling symbols table
sqlite3 consolidated.sqlite3 'insert INTO Symbols select DISTINCT Symbol from OptionQuotes where OptionQuotes.Symbol not in (select Symbol from Symbols);'
rm /tmp/xx.sqlite3 rm /tmp/xx.sqlite3
if [[ "$delete" == "1" ]]; then if [[ "$delete" == "1" ]]; then
echo deleting... echo deleting...