mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-24 08:20:54 -04:00
Optimise database temp tables indexes (#2409)
This commit is contained in:
@@ -100,7 +100,7 @@ class Customer extends Person
|
||||
{
|
||||
// create a temporary table to contain all the sum and average of items
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sales_items_temp') .
|
||||
' (INDEX(sale_id))
|
||||
' (INDEX(sale_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT
|
||||
sales.sale_id AS sale_id,
|
||||
|
||||
@@ -27,7 +27,8 @@ class Sale extends CI_Model
|
||||
// NOTE: temporary tables are created to speed up searches due to the fact that they are ortogonal to the main query
|
||||
// create a temporary table to contain all the payments per sale
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sales_payments_temp') .
|
||||
'(
|
||||
' (PRIMARY KEY(sale_id), INDEX(sale_id))
|
||||
(
|
||||
SELECT payments.sale_id AS sale_id,
|
||||
IFNULL(SUM(payments.payment_amount), 0) AS sale_payment_amount,
|
||||
GROUP_CONCAT(CONCAT(payments.payment_type, " ", payments.payment_amount) SEPARATOR ", ") AS payment_type
|
||||
@@ -57,7 +58,8 @@ class Sale extends CI_Model
|
||||
|
||||
// create a temporary table to contain all the sum of taxes per sale item
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sales_items_taxes_temp') .
|
||||
'(
|
||||
' (INDEX(sale_id), INDEX(item_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT sales_items_taxes.sale_id AS sale_id,
|
||||
sales_items_taxes.item_id AS item_id,
|
||||
sales_items_taxes.line AS line,
|
||||
@@ -172,7 +174,7 @@ class Sale extends CI_Model
|
||||
|
||||
// create a temporary table to contain all the sum of taxes per sale item
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sales_items_taxes_temp') .
|
||||
' (INDEX(sale_id), INDEX(item_id))
|
||||
' (INDEX(sale_id), INDEX(item_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT sales_items_taxes.sale_id AS sale_id,
|
||||
sales_items_taxes.item_id AS item_id,
|
||||
@@ -1113,7 +1115,7 @@ class Sale extends CI_Model
|
||||
|
||||
// create a temporary table to contain all the sum of taxes per sale item
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sales_items_taxes_temp') .
|
||||
' (INDEX(sale_id), INDEX(item_id))
|
||||
' (INDEX(sale_id), INDEX(item_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT sales_items_taxes.sale_id AS sale_id,
|
||||
sales_items_taxes.item_id AS item_id,
|
||||
|
||||
@@ -137,7 +137,7 @@ class Summary_payments extends Summary_report
|
||||
|
||||
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sumpay_taxes_temp') .
|
||||
' (INDEX(sale_id))
|
||||
' (INDEX(sale_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT sales.sale_id, SUM(sales_taxes.sale_tax_amount) AS total_taxes
|
||||
FROM ' . $this->db->dbprefix('sales') . ' AS sales
|
||||
@@ -149,7 +149,7 @@ class Summary_payments extends Summary_report
|
||||
);
|
||||
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sumpay_items_temp') .
|
||||
' (INDEX(sale_id))
|
||||
' (INDEX(sale_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT sales.sale_id, '. $trans_amount
|
||||
. ' FROM ' . $this->db->dbprefix('sales') . ' AS sales '
|
||||
@@ -166,7 +166,7 @@ class Summary_payments extends Summary_report
|
||||
. ' AS sumpay_taxes WHERE sumpay_items.sale_id = sumpay_taxes.sale_id),0)');
|
||||
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sumpay_payments_temp') .
|
||||
' (INDEX(sale_id))
|
||||
' (INDEX(sale_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT sales.sale_id, COUNT(sales.sale_id) AS number_payments, SUM(sales_payments.payment_amount) AS total_payments
|
||||
FROM ' . $this->db->dbprefix('sales') . ' AS sales
|
||||
|
||||
@@ -40,7 +40,7 @@ abstract class Summary_report extends Report
|
||||
|
||||
// create a temporary table to contain all the sum of taxes per sale item
|
||||
$this->db->query('CREATE TEMPORARY TABLE IF NOT EXISTS ' . $this->db->dbprefix('sales_items_taxes_temp') .
|
||||
' (INDEX(sale_id), INDEX(item_id))
|
||||
' (INDEX(sale_id), INDEX(item_id)) ENGINE=MEMORY
|
||||
(
|
||||
SELECT sales_items_taxes.sale_id AS sale_id,
|
||||
sales_items_taxes.item_id AS item_id,
|
||||
|
||||
Reference in New Issue
Block a user