小编Zby*_*nek的帖子

MySQL中小型查找表的最佳引擎

我有以下问题:我正在设计带有几十个小型查找表的 Web 应用程序:这些表通常包含三列(ID、名称、描述)和几行(大多数少于 50,最大约为 450)。

这些查找表预计很少更改(它们来自标准,几年更改一次)并且仅用于:

  • html select 中的填充选项
  • 加入报告中的其他记录

SELECT99% 的情况下,这些表上只会有语句,但会有相当多的语句。

我想知道,使用哪种数据库引擎最有效?

以下是我的考虑:

记忆

  • 亲:非常快
  • con:如果服务器崩溃,所有数据都丢失,需要重新创建
  • con:不支持外键

压缩的 MyISAM

  • 亲:快
  • con:不支持外键

数据库

  • 亲:外键支持

我想问的是,使用与InnoDB不同的东西是否会有显着的优势- 性能方面

谢谢,兹比内克

mysql innodb myisam storage-engine database-recommendation

6
推荐指数
1
解决办法
691
查看次数

在分组数据中查找连续范围

我有一个具有以下结构的表:

CREATE TABLE `Rings` (
    ID_RingType CHAR(2),
    Number MEDIUMINT UNSIGNED,
    ID_User INT(11)
);
Run Code Online (Sandbox Code Playgroud)

和数据:

INSERT INTO `Rings` VALUES
  ('AA',1,1),
  ('AA',2,1),
  ('AA',3,1),
  ('AA',11,1),
  ('AA',12,1),
  ('AA',13,1),
  ('AA',14,1),
  ('AA',15,1),
  ('AB',16,1),
  ('AB',17,1),
  ('AB',18,1),
  ('AB',19,1),
  ('AB',20,2),
  ('AB',21,2),
  ('AB',22,2);
Run Code Online (Sandbox Code Playgroud)

我想组基于所述数据ID_UserID_RingType和用于数字的每个连续范围列出MIN和MAX。

结果应如下所示:

ID_User | ID_RingType | MIN  | MAX
1       | 'AA'        | 1    | 3
1       | 'AA'        | 11   | 15
1       | 'AB'        | 16   | 19
2       | 'AB'        | 20   | 22
Run Code Online (Sandbox Code Playgroud)

我浏览了关于这个主题的几篇文章,但无法调整它们以适合我的数据。

任何帮助,将不胜感激。

mysql group-by gaps-and-islands

6
推荐指数
2
解决办法
1277
查看次数

MySQL:为什么插入数据比没有它们更快

我正在使用存储过程生成由给定范围内的前缀和数字组成的序列(等序列“AB100”、“AB101”、...、“AB199”、“AB200”)

存储过程包括REPEAT循环,其中构造字符串并插入表中。

当所有循环都在事务内时,程序运行得非常快,但是当我在没有事务的情况下插入数据时,运行该程序的时间要长 400 倍。

谁能解释一下,为什么会这样?

或者,如果有人更好地了解如何生成这样的序列,我会很高兴听到他们的声音。

这是代码:

-- create table
CREATE TABLE seq
(
    Code CHAR(12)
) ENGINE = INNODB;

-- fast procedure with transactions
DELIMITER $$
CREATE PROCEDURE sp_sequence(IN val_prefix CHAR(2), IN val_from INT, IN val_to INT )
BEGIN
    START TRANSACTION;
    SET @val = val_from;
    REPEAT
        INSERT INTO seq (Code) VALUES (CONCAT(val_prefix, @val));
        SET @val = @val + 1;
    UNTIL @val > val_to END REPEAT;
    COMMIT;
END$$
DELIMITER ;

-- slow procedure without transactions
DROP PROCEDURE …
Run Code Online (Sandbox Code Playgroud)

mysql stored-procedures transaction

4
推荐指数
1
解决办法
4389
查看次数