If I change the call_time to an integer column, storing unix time and make it hte index, would this help?
----- Original Message ----- From: "Ulrik Petersen" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 16, 2004 11:10 PM
Subject: Re: [sqlite] Speeding up quer



Hi again,

There are no indexes in may tables. Please find the following schemas for
my
tables. Would it make more sense to convert my datetime columns to
microtime?. What other recommendations would you make for these tables?
CREATE TABLE users (
  user_id INTEGER PRIMARY KEY,
  extn_no varchar(16) default NULL,
  username varchar(255) default NULL,
  password varchar(255) default NULL,
  admin NOT NULL default 'No',
  depthead NOT NULL default 'No',
  user NOT NULL default 'Yes',
  firstname varchar(255) default NULL,
  surname varchar(255) default NULL,
  job_title varchar(255) default NULL,
  user_email varchar(255) default NULL,
  deleted NOT NULL default 'No'
);

CREATE TABLE call_data (
  call_id INTEGER PRIMARY KEY,
  direction NOT NULL default 'Out',
  group_no varchar(16) default NULL,
  start_no varchar(16) default NULL,
  extn_no varchar(16) NOT NULL default '',
  trunk_no varchar(16) NOT NULL default '',
  trans NOT NULL default 'No',
  ddi varchar(16) default NULL,
  dest varchar(32) NOT NULL default '',
  dest_name varchar(255) default NULL,
  duration varchar(8) NOT NULL default '',
  ring_time varchar(5) default NULL,
  call_time datetime default NULL,
  cost decimal(10,2) default NULL,
  band varchar(10) default NULL,
  site_id varchar(10) default NULL
);

You could change the columns that seem to be boolean values to INTEGER and store "0" and "1" instead of "Yes" and "No". Because of the way SQlite 2 stores these things (namely as strings), this will most likely save you some space.

Ulrik
--
Ulrik Petersen, Denmark
Homepage: <http://www.hum.aau.dk/~ulrikp/>







Reply via email to