mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Add database indices to improve peformance (part 3)
This commit is contained in:
parent
ccc99eba0c
commit
40f0d00e37
1 changed files with 36 additions and 33 deletions
|
@ -21,30 +21,32 @@ final class Version20220925162725 extends AbstractMultiPlatformMigration
|
||||||
public function mySQLUp(Schema $schema): void
|
public function mySQLUp(Schema $schema): void
|
||||||
{
|
{
|
||||||
// this up() migration is auto-generated, please modify it to your needs
|
// this up() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->addSql('CREATE INDEX attachment_types_idx_name ON attachment_types (name)');
|
||||||
|
$this->addSql('CREATE INDEX attachment_types_idx_parent_name ON attachment_types (parent_id, name)');
|
||||||
$this->addSql('ALTER TABLE attachments CHANGE type_id type_id INT NOT NULL');
|
$this->addSql('ALTER TABLE attachments CHANGE type_id type_id INT NOT NULL');
|
||||||
$this->addSql('CREATE INDEX attachments_idx_id_element_id_class_name ON attachments (id, element_id, class_name)');
|
$this->addSql('CREATE INDEX attachments_idx_id_element_id_class_name ON attachments (id, element_id, class_name)');
|
||||||
$this->addSql('CREATE INDEX attachments_idx_class_name_id ON attachments (class_name, id)');
|
$this->addSql('CREATE INDEX attachments_idx_class_name_id ON attachments (class_name, id)');
|
||||||
$this->addSql('CREATE INDEX attachment_name_idx ON attachments (name)');
|
$this->addSql('CREATE INDEX attachment_name_idx ON attachments (name)');
|
||||||
$this->addSql('CREATE INDEX attachment_element_idx ON attachments (class_name, element_id)');
|
$this->addSql('CREATE INDEX attachment_element_idx ON attachments (class_name, element_id)');
|
||||||
$this->addSql('ALTER TABLE categories CHANGE partname_regex partname_regex LONGTEXT NOT NULL, CHANGE partname_hint partname_hint LONGTEXT NOT NULL, CHANGE default_description default_description LONGTEXT NOT NULL, CHANGE default_comment default_comment LONGTEXT NOT NULL');
|
$this->addSql('ALTER TABLE categories CHANGE partname_regex partname_regex LONGTEXT NOT NULL, CHANGE partname_hint partname_hint LONGTEXT NOT NULL, CHANGE default_description default_description LONGTEXT NOT NULL, CHANGE default_comment default_comment LONGTEXT NOT NULL');
|
||||||
$this->addSql('CREATE INDEX name_idx ON categories (name)');
|
$this->addSql('CREATE INDEX category_idx_name ON categories (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON categories (parent_id, name)');
|
$this->addSql('CREATE INDEX category_idx_parent_name ON categories (parent_id, name)');
|
||||||
$this->addSql('ALTER TABLE currencies CHANGE exchange_rate exchange_rate NUMERIC(11, 5) DEFAULT NULL COMMENT \'(DC2Type:big_decimal)\'');
|
$this->addSql('ALTER TABLE currencies CHANGE exchange_rate exchange_rate NUMERIC(11, 5) DEFAULT NULL COMMENT \'(DC2Type:big_decimal)\'');
|
||||||
$this->addSql('CREATE INDEX name_idx ON currencies (name)');
|
$this->addSql('CREATE INDEX currency_idx_name ON currencies (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON currencies (parent_id, name)');
|
$this->addSql('CREATE INDEX currency_idx_parent_name ON currencies (parent_id, name)');
|
||||||
$this->addSql('ALTER TABLE device_parts CHANGE mountnames mountnames LONGTEXT NOT NULL');
|
$this->addSql('ALTER TABLE device_parts CHANGE mountnames mountnames LONGTEXT NOT NULL');
|
||||||
$this->addSql('CREATE INDEX name_idx ON footprints (name)');
|
$this->addSql('CREATE INDEX footprint_idx_name ON footprints (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON footprints (parent_id, name)');
|
$this->addSql('CREATE INDEX footprint_idx_parent_name ON footprints (parent_id, name)');
|
||||||
$this->addSql('CREATE INDEX name_idx ON groups (name)');
|
$this->addSql('CREATE INDEX group_idx_name ON groups (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON groups (parent_id, name)');
|
$this->addSql('CREATE INDEX group_idx_parent_name ON groups (parent_id, name)');
|
||||||
$this->addSql('ALTER TABLE log CHANGE level level TINYINT(4) NOT NULL');
|
$this->addSql('ALTER TABLE log CHANGE level level TINYINT(4) NOT NULL');
|
||||||
$this->addSql('CREATE INDEX log_idx_type ON log (type)');
|
$this->addSql('CREATE INDEX log_idx_type ON log (type)');
|
||||||
$this->addSql('CREATE INDEX log_idx_type_target ON log (type, target_type, target_id)');
|
$this->addSql('CREATE INDEX log_idx_type_target ON log (type, target_type, target_id)');
|
||||||
$this->addSql('CREATE INDEX log_idx_datetime ON log (datetime)');
|
$this->addSql('CREATE INDEX log_idx_datetime ON log (datetime)');
|
||||||
$this->addSql('CREATE INDEX name_idx ON manufacturers (name)');
|
$this->addSql('CREATE INDEX manufacturer_name ON manufacturers (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON manufacturers (parent_id, name)');
|
$this->addSql('CREATE INDEX manufacturer_idx_parent_name ON manufacturers (parent_id, name)');
|
||||||
$this->addSql('CREATE INDEX name_idx ON measurement_units (name)');
|
$this->addSql('CREATE INDEX unit_idx_name ON measurement_units (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON measurement_units (parent_id, name)');
|
$this->addSql('CREATE INDEX unit_idx_parent_name ON measurement_units (parent_id, name)');
|
||||||
$this->addSql('CREATE INDEX orderdetails_supplier_part_nr ON orderdetails (supplierpartnr)');
|
$this->addSql('CREATE INDEX orderdetails_supplier_part_nr ON orderdetails (supplierpartnr)');
|
||||||
$this->addSql('CREATE INDEX parameter_name_idx ON parameters (name)');
|
$this->addSql('CREATE INDEX parameter_name_idx ON parameters (name)');
|
||||||
$this->addSql('CREATE INDEX parameter_group_idx ON parameters (param_group)');
|
$this->addSql('CREATE INDEX parameter_group_idx ON parameters (param_group)');
|
||||||
|
@ -57,42 +59,43 @@ final class Version20220925162725 extends AbstractMultiPlatformMigration
|
||||||
$this->addSql('ALTER TABLE pricedetails CHANGE price price NUMERIC(11, 5) NOT NULL COMMENT \'(DC2Type:big_decimal)\'');
|
$this->addSql('ALTER TABLE pricedetails CHANGE price price NUMERIC(11, 5) NOT NULL COMMENT \'(DC2Type:big_decimal)\'');
|
||||||
$this->addSql('CREATE INDEX pricedetails_idx_min_discount ON pricedetails (min_discount_quantity)');
|
$this->addSql('CREATE INDEX pricedetails_idx_min_discount ON pricedetails (min_discount_quantity)');
|
||||||
$this->addSql('CREATE INDEX pricedetails_idx_min_discount_price_qty ON pricedetails (min_discount_quantity, price_related_quantity)');
|
$this->addSql('CREATE INDEX pricedetails_idx_min_discount_price_qty ON pricedetails (min_discount_quantity, price_related_quantity)');
|
||||||
$this->addSql('CREATE INDEX name_idx ON storelocations (name)');
|
$this->addSql('CREATE INDEX location_idx_name ON storelocations (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON storelocations (parent_id, name)');
|
$this->addSql('CREATE INDEX location_idx_parent_name ON storelocations (parent_id, name)');
|
||||||
$this->addSql('ALTER TABLE suppliers CHANGE shipping_costs shipping_costs NUMERIC(11, 5) DEFAULT NULL COMMENT \'(DC2Type:big_decimal)\'');
|
$this->addSql('ALTER TABLE suppliers CHANGE shipping_costs shipping_costs NUMERIC(11, 5) DEFAULT NULL COMMENT \'(DC2Type:big_decimal)\'');
|
||||||
$this->addSql('CREATE INDEX name_idx ON suppliers (name)');
|
$this->addSql('CREATE INDEX supplier_idx_name ON suppliers (name)');
|
||||||
$this->addSql('CREATE INDEX parent_name_idx ON suppliers (parent_id, name)');
|
$this->addSql('CREATE INDEX supplier_idx_parent_name ON suppliers (parent_id, name)');
|
||||||
$this->addSql('ALTER TABLE users CHANGE config_instock_comment_w config_instock_comment_w LONGTEXT NOT NULL, CHANGE config_instock_comment_a config_instock_comment_a LONGTEXT NOT NULL');
|
$this->addSql('ALTER TABLE users CHANGE config_instock_comment_w config_instock_comment_w LONGTEXT NOT NULL, CHANGE config_instock_comment_a config_instock_comment_a LONGTEXT NOT NULL');
|
||||||
$this->addSql('CREATE INDEX user_idx_username ON users (name)');
|
$this->addSql('CREATE INDEX user_idx_username ON users (name)');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function mySQLDown(Schema $schema): void
|
public function mySQLDown(Schema $schema): void
|
||||||
{
|
{
|
||||||
// this down() migration is auto-generated, please modify it to your needs
|
|
||||||
$this->addSql('DROP INDEX attachments_idx_id_element_id_class_name ON `attachments`');
|
$this->addSql('DROP INDEX attachments_idx_id_element_id_class_name ON `attachments`');
|
||||||
$this->addSql('DROP INDEX attachments_idx_class_name_id ON `attachments`');
|
$this->addSql('DROP INDEX attachments_idx_class_name_id ON `attachments`');
|
||||||
$this->addSql('DROP INDEX attachment_name_idx ON `attachments`');
|
$this->addSql('DROP INDEX attachment_name_idx ON `attachments`');
|
||||||
$this->addSql('DROP INDEX attachment_element_idx ON `attachments`');
|
$this->addSql('DROP INDEX attachment_element_idx ON `attachments`');
|
||||||
$this->addSql('ALTER TABLE `attachments` CHANGE type_id type_id INT DEFAULT NULL');
|
$this->addSql('ALTER TABLE `attachments` CHANGE type_id type_id INT DEFAULT NULL');
|
||||||
$this->addSql('DROP INDEX name_idx ON `categories`');
|
$this->addSql('DROP INDEX attachment_types_idx_name ON `attachment_types`');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON `categories`');
|
$this->addSql('DROP INDEX attachment_types_idx_parent_name ON `attachment_types`');
|
||||||
|
$this->addSql('DROP INDEX category_idx_name ON `categories`');
|
||||||
|
$this->addSql('DROP INDEX category_idx_parent_name ON `categories`');
|
||||||
$this->addSql('ALTER TABLE `categories` CHANGE partname_hint partname_hint TEXT NOT NULL, CHANGE partname_regex partname_regex TEXT NOT NULL, CHANGE default_description default_description TEXT NOT NULL, CHANGE default_comment default_comment TEXT NOT NULL');
|
$this->addSql('ALTER TABLE `categories` CHANGE partname_hint partname_hint TEXT NOT NULL, CHANGE partname_regex partname_regex TEXT NOT NULL, CHANGE default_description default_description TEXT NOT NULL, CHANGE default_comment default_comment TEXT NOT NULL');
|
||||||
$this->addSql('DROP INDEX name_idx ON currencies');
|
$this->addSql('DROP INDEX currency_idx_name ON currencies');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON currencies');
|
$this->addSql('DROP INDEX currency_idx_parent_name ON currencies');
|
||||||
$this->addSql('ALTER TABLE currencies CHANGE exchange_rate exchange_rate NUMERIC(11, 5) DEFAULT NULL');
|
$this->addSql('ALTER TABLE currencies CHANGE exchange_rate exchange_rate NUMERIC(11, 5) DEFAULT NULL');
|
||||||
$this->addSql('ALTER TABLE `device_parts` CHANGE mountnames mountnames MEDIUMTEXT NOT NULL');
|
$this->addSql('ALTER TABLE `device_parts` CHANGE mountnames mountnames MEDIUMTEXT NOT NULL');
|
||||||
$this->addSql('DROP INDEX name_idx ON `footprints`');
|
$this->addSql('DROP INDEX footprint_idx_name ON `footprints`');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON `footprints`');
|
$this->addSql('DROP INDEX footprint_idx_parent_name ON `footprints`');
|
||||||
$this->addSql('DROP INDEX name_idx ON `groups`');
|
$this->addSql('DROP INDEX group_idx_name ON `groups`');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON `groups`');
|
$this->addSql('DROP INDEX group_idx_parent_name ON `groups`');
|
||||||
$this->addSql('DROP INDEX log_idx_type ON log');
|
$this->addSql('DROP INDEX log_idx_type ON log');
|
||||||
$this->addSql('DROP INDEX log_idx_type_target ON log');
|
$this->addSql('DROP INDEX log_idx_type_target ON log');
|
||||||
$this->addSql('DROP INDEX log_idx_datetime ON log');
|
$this->addSql('DROP INDEX log_idx_datetime ON log');
|
||||||
$this->addSql('ALTER TABLE log CHANGE level level TINYINT(1) NOT NULL');
|
$this->addSql('ALTER TABLE log CHANGE level level TINYINT(1) NOT NULL');
|
||||||
$this->addSql('DROP INDEX name_idx ON `manufacturers`');
|
$this->addSql('DROP INDEX manufacturer_name ON `manufacturers`');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON `manufacturers`');
|
$this->addSql('DROP INDEX manufacturer_idx_parent_name ON `manufacturers`');
|
||||||
$this->addSql('DROP INDEX name_idx ON `measurement_units`');
|
$this->addSql('DROP INDEX unit_idx_name ON `measurement_units`');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON `measurement_units`');
|
$this->addSql('DROP INDEX unit_idx_parent_name ON `measurement_units`');
|
||||||
$this->addSql('DROP INDEX orderdetails_supplier_part_nr ON `orderdetails`');
|
$this->addSql('DROP INDEX orderdetails_supplier_part_nr ON `orderdetails`');
|
||||||
$this->addSql('DROP INDEX parameter_name_idx ON parameters');
|
$this->addSql('DROP INDEX parameter_name_idx ON parameters');
|
||||||
$this->addSql('DROP INDEX parameter_group_idx ON parameters');
|
$this->addSql('DROP INDEX parameter_group_idx ON parameters');
|
||||||
|
@ -105,10 +108,10 @@ final class Version20220925162725 extends AbstractMultiPlatformMigration
|
||||||
$this->addSql('DROP INDEX pricedetails_idx_min_discount ON `pricedetails`');
|
$this->addSql('DROP INDEX pricedetails_idx_min_discount ON `pricedetails`');
|
||||||
$this->addSql('DROP INDEX pricedetails_idx_min_discount_price_qty ON `pricedetails`');
|
$this->addSql('DROP INDEX pricedetails_idx_min_discount_price_qty ON `pricedetails`');
|
||||||
$this->addSql('ALTER TABLE `pricedetails` CHANGE price price NUMERIC(11, 5) NOT NULL');
|
$this->addSql('ALTER TABLE `pricedetails` CHANGE price price NUMERIC(11, 5) NOT NULL');
|
||||||
$this->addSql('DROP INDEX name_idx ON `storelocations`');
|
$this->addSql('DROP INDEX location_idx_name ON `storelocations`');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON `storelocations`');
|
$this->addSql('DROP INDEX location_idx_parent_name ON `storelocations`');
|
||||||
$this->addSql('DROP INDEX name_idx ON `suppliers`');
|
$this->addSql('DROP INDEX supplier_idx_name ON `suppliers`');
|
||||||
$this->addSql('DROP INDEX parent_name_idx ON `suppliers`');
|
$this->addSql('DROP INDEX supplier_idx_parent_name ON `suppliers`');
|
||||||
$this->addSql('ALTER TABLE `suppliers` CHANGE shipping_costs shipping_costs NUMERIC(11, 5) DEFAULT NULL');
|
$this->addSql('ALTER TABLE `suppliers` CHANGE shipping_costs shipping_costs NUMERIC(11, 5) DEFAULT NULL');
|
||||||
$this->addSql('DROP INDEX user_idx_username ON `users`');
|
$this->addSql('DROP INDEX user_idx_username ON `users`');
|
||||||
$this->addSql('ALTER TABLE `users` CHANGE config_instock_comment_a config_instock_comment_a TEXT NOT NULL, CHANGE config_instock_comment_w config_instock_comment_w TEXT NOT NULL');
|
$this->addSql('ALTER TABLE `users` CHANGE config_instock_comment_a config_instock_comment_a TEXT NOT NULL, CHANGE config_instock_comment_w config_instock_comment_w TEXT NOT NULL');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue