All pastes #2077181 Raw Edit

Anonymous

public text v1 · immutable
#2077181 ·published 2011-06-09 07:42 UTC
rendered paste body
CREATE TABLE `pdf` (
  `pdfid` int(11) NOT NULL AUTO_INCREMENT,
  `parentid` int(11) NOT NULL,
  `caseid` int(11) NOT NULL DEFAULT '0',
  `nodid` int(11) NOT NULL DEFAULT '0',
  `attorneyid` int(11) NOT NULL DEFAULT '0',
  `pdfdiscovered` enum('No','Yes') NOT NULL DEFAULT 'No',
  `pdffilename` varchar(64) NOT NULL DEFAULT '',
  `pdfdraftedby` tinytext NOT NULL,
  `pdfaddressedto` tinytext NOT NULL,
  `pdfdatedrafted` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `pdfdatereceived` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `pdfdateloged` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `pdfcount` float NOT NULL DEFAULT '0',
  `pdfpages` float NOT NULL DEFAULT '0',
  `pdfduration` int(5) NOT NULL DEFAULT '0',
  `physical_pages` int(11) NOT NULL DEFAULT '-1',
  `state` int(3) NOT NULL DEFAULT '1',
  `imported` varchar(100) NOT NULL,
  PRIMARY KEY (`pdfid`),
  KEY `parentid` (`parentid`),
  KEY `pdfdatedrafted` (`pdfdatedrafted`),
  KEY `caseid` (`caseid`),
  KEY `nodid` (`nodid`),
  CONSTRAINT `caseid` FOREIGN KEY (`caseid`) REFERENCES `cases` (`caseid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `nodid` FOREIGN KEY (`nodid`) REFERENCES `nod` (`nodid`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=92037 DEFAULT CHARSET=latin1


------------------------------------------------------------------------------------------------
This query runs in 2.2s

SELECT  `pdf`.`pdfid` AS `pdfid`, `nod`.`nodid` AS `nodid`, `nod`.`nod` AS `nod`, `clients`.`clientid` AS `clientid`, `clients`.`clientname` AS `clientname`, `pdf`.`pdfdraftedby` AS `pdfdraftedby`, `pdf`.`pdfaddressedto` AS `pdfaddressedto`, `pdf`.`pdfdateloged` AS `pdfdateloged`, `pdf`.`attorneyid` AS `attorneyid`, `pdf`.`caseid` AS `caseid`, `pdf`.`pdfdatedrafted` AS `pdfdatedrafted`, `pdf`.`pdfdatereceived` AS `pdfdatereceived`, `pdf`.`pdfdiscovered` AS `discovered`, `pdf`.`pdfpages` AS `legal_pages`, `pdf`.`physical_pages` AS `physical_pages`,  count(pdf_child.pdfid) as `children`     from pdf left join `nod` on `pdf`.`nodid` = `nod`.`nodid`  left join `cases` on `pdf`.`caseid` = `cases`.`caseid` left join `clients` on `cases`.`clientid` = `clients`.`clientid` LEFT JOIN pdf as pdf_child ON pdf_child.parentid = pdf.pdfid  WHERE  clients.clientid = 235  AND pdf.state = '1'  AND pdf.parentID = '0'  group by pdf.pdfid ORDER BY `pdfdatedrafted` ASC  LIMIT 300, 100;

+----+-------------+-----------+--------+------------------+----------+---------+----------------------+------+---------------------------------+
| id | select_type | table     | type   | possible_keys    | key      | key_len | ref                  | rows | Extra                           |
+----+-------------+-----------+--------+------------------+----------+---------+----------------------+------+---------------------------------+
|  1 | SIMPLE      | clients   | const  | PRIMARY          | PRIMARY  | 4       | const                |    1 | Using temporary; Using filesort |
|  1 | SIMPLE      | cases     | ref    | PRIMARY,clientid | clientid | 4       | const                |   47 | Using where; Using index        |
|  1 | SIMPLE      | pdf       | ref    | parentid,caseid  | caseid   | 4       | alexmay.cases.caseid |   48 | Using where                     |
|  1 | SIMPLE      | nod       | eq_ref | PRIMARY          | PRIMARY  | 4       | alexmay.pdf.nodid    |    1 |                                 |
|  1 | SIMPLE      | pdf_child | ref    | parentid         | parentid | 4       | alexmay.pdf.pdfid    | 4763 | Using index                     |
+----+-------------+-----------+--------+------------------+----------+---------+----------------------+------+---------------------------------+


---------------------------------------------------------------------------------------------------------------

This query runs in 0.4s

SELECT  `pdf`.`pdfid` AS `pdfid`, `nod`.`nodid` AS `nodid`, `nod`.`nod` AS `nod`, `clients`.`clientid` AS `clientid`, `clients`.`clientname` AS `clientname`, 
// HERE IS THE DIFFERENCE
SUBSTR(pdf.pdfdraftedby,1,100) AS `pdfdraftedby`, 
SUBSTR(pdf.pdfaddressedto,1,100) AS `pdfaddressedto`, 
//
`pdf`.`pdfdateloged` AS `pdfdateloged`, `pdf`.`attorneyid` AS `attorneyid`, `pdf`.`caseid` AS `caseid`, `pdf`.`pdfdatedrafted` AS `pdfdatedrafted`, `pdf`.`pdfdatereceived` AS `pdfdatereceived`, `pdf`.`pdfdiscovered` AS `discovered`, `pdf`.`pdfpages` AS `legal_pages`, `pdf`.`physical_pages` AS `physical_pages`,  count(pdf_child.pdfid) as `children`     from pdf left join `nod` on `pdf`.`nodid` = `nod`.`nodid`  left join `cases` on `pdf`.`caseid` = `cases`.`caseid` left join `clients` on `cases`.`clientid` = `clients`.`clientid` LEFT JOIN pdf as pdf_child ON pdf_child.parentid = pdf.pdfid  WHERE  clients.clientid = 235  AND pdf.state = '1'  AND pdf.parentID = '0'  group by pdf.pdfid ORDER BY `pdfdatedrafted` ASC  LIMIT 300, 100;