首页 文章
  • 140 votes
     answers
     views

    INT和VARCHAR主键之间是否存在真正的性能差异?

    使用INT与VARCHAR作为MySQL中的主键之间是否存在可衡量的性能差异?我想使用VARCHAR作为参考列表的主键(想想美国国家代码),并且同事不会将INT AUTO_INCREMENT作为所有表的主键 . 我的论点,如详细here,是INT和VARCHAR之间的性能差异可以忽略不计,因为每个INT外键引用都需要JOIN来理解引用,VARCHAR键将直接呈现信息 . 那么,是否有人有过这个特定...
  • 147 votes
     answers
     views

    如何正确创建复合主键 - MYSQL

    这是我正在使用的激烈设置的粗略过度简化 . table_1 和 table_2 都具有自动递增代理主键作为ID . info 是一个包含有关 table_1 和 table_2 的信息的表 . table_1 (id, field) table_2 (id, field, field) info ( ???, field) 我试图决定是否应该使 info 的主键成为 table_1 ...
  • 335 votes
     answers
     views

    如何检查特定表的MySQL引擎类型?

    我的MySQL数据库包含几个使用不同存储引擎的表(特别是myisam和innodb) . 如何找出哪个表使用哪个引擎?
  • 3 votes
     answers
     views

    一起使用innodb和myisam表

    我有一个将日志写入数据库的软件,这些日志将存储大约2-3个月 . 有些人希望随时查询这些日志 . 系统每秒写入avg 5000行(1000个批量插入),主键不存在,但不同列有6个索引 . 顺便说一下,表有20列,没有任何外键 . 由于需要巨大的磁盘大小,我不想使用innodb表 . 如您所知,MyISAM表的大小比相同的innodb表小三(或更多)倍 . 我计划每月使用不同的表并压缩比本月更早的表...
  • 825 votes
     answers
     views

    MyISAM与InnoDB [关闭]

    我说_(71%插入和30%读取) . 该比率还包括我认为是一次读取和一次写入的更新 . 读取可能很脏(例如,在读取时我不需要100%准确的信息) .有问题的任务将是每小时进行超过100万次数据库事务 . 我在网上看到了很多关于MyISAM和InnoDB之间差异的东西,对于我将用于此任务的特定数据库/表格来说,MyISAM似乎是明显的选择 . 从我似乎正在阅读的内容来看,如果需要事务处理,InnoD...
  • -4 votes
     answers
     views

    将我的MyISAM转换为InnoDB [关闭]

    我没有表中的记录 . 当我将MyISAM转换为InnoDB时出现此错误 SQL查询:编辑 ALTER TABLE `vocabulary` ENGINE = InnoDB MySQL说:文档 #1214 - 使用的表类型不支持FULLTEXT索引 表词汇表的表结构 CREATE TABLE IF NOT NOT EXISTS vocabulary ( id int(10)unsigne...
  • 4 votes
     answers
     views

    无法创建InnoDB表(错误-1)

    我正在将一个相当简单的表移植到我的实时数据库服务器上,当我尝试创建一个InnoDB表时,它给了我这个奇怪的错误,表创建是: CREATE TABLE `cobertura` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `cep` int(8) unsigned zerofill NOT NULL, PRIMARY KEY (`...
  • 0 votes
     answers
     views

    MySql InnoDB - 在表的“Not Null”列中插入

    我对InnoDB和MyISAM数据库存储引擎有疑问 . 假设我们在一个表中有5列,所有列都设置为“Not Null” . 当我运行查询只在MyISAM数据库的两列中插入值时,它不会生成任何错误,将记录插入表中并默认将其他列保留为空 . 但是当我对InnoDB数据库执行相同操作时,会产生“somecolumn not null”的错误 . 我的所有表都设置为MyISAM类型,但我的数据库是InnoD...
  • -1 votes
     answers
     views

    PHP将数据导入mysql类型的InnoDB数据库时超时

    我正在开发一个需要自己的mysql表的PHP / mysql程序,我希望包含一个示例数据库用于测试/学习目的 . 我想使用PHP安装脚本自动创建mysql表并插入示例数据库 . 最新版本的mysql现在将引擎类型设置为InnoDB,我可以使用PHP成功创建mysql数据库 - 默认为InnoDB类型 . 当我尝试导入示例数据库(来自csv文件)时出现问题 - 在1800次记录中,在PHP超时之前仅...
  • 0 votes
     answers
     views

    CREATE TABLE不适用于InnoDB,但适用于MyISAM

    我有这张 table : CREATE TABLE `peso_tec_dt_aj` ( `idade` int(11) DEFAULT NULL, `tecnico` varchar(50) DEFAULT NULL, `obt` double DEFAULT NULL, `pad` decimal(4,3) DEFAULT NULL, `aves_peso` int(11)...
  • 3 votes
     answers
     views

    MySQL InnoDB比MyISAM慢得多

    我有两个表(缩小到重要字段): syskeywordobjects: pksyskeywordobjects BIGINT fksyskeywords BIGINT fkcontents BIGINT fkcontents INDEX (fkcontents) fksyskeywords INDEX (fksyskeywords) fkcontents_fksyskeywords INDEX (...
  • 2 votes
     answers
     views

    Mysql:MyIsam或InnoDB,当UUID用作PK时

    我正在开发一个项目,我需要在数据库(MySQL)中使用UUID(16位)作为唯一标识符 . 数据库有很多关系表 . 关于将UUID用作PK,我有以下问题: 我应该将唯一标识符索引为PK / FK还是没有必要?如果我索引它,索引大小会增加,但它确实需要吗? 附上我必须使用uuid的示例:具有一个唯一标识符(oid)和外键(语言)的表用户 . CREATE TABLE用户(oid binary(1...
  • 2 votes
     answers
     views

    将MySQL默认表引擎从MyISAM更改为InnoDB

    我在配置了MyISAM默认表的机器上运行MySQL . 现在我想问一些问题: 1)如果我在配置文件(my.conf)中将默认表更改为InnoDB,清除日志文件并重新启动mysql,是否会损害我之前的任何数据库或表? 2)如果我使用以下命令将几个表的引擎改为InnoDB,那会不会影响它的数据? ALTER TABLE table_name ENGINE = InnoDB; 3)将几个表保留为MyI...
  • 2 votes
     answers
     views

    通过PHP检测MySQL InnoDB

    如何检测MySQL数据库表是否在PHP程序中使用InnoDB存储引擎? 原因 - PHP程序需要利用数据库事务 . InnoDB支持交易 . MyISAM(MySQL默认存储引擎)没有 . 如果不支持事务,则程序需要失败 .
  • 6 votes
     answers
     views

    将MyISAM转换为InnoDB . 有利?后果是什么?

    我们正在运行一个社交网站,记录每个成员的行为(包括访问其他成员的页面);这涉及到db的大量写入 . 这些操作存储在MyISAM表中,并且由于某些东西开始对CPU征税,我首先想到的是MyISAM的表锁定会对CPU造成这种压力 . 只有读取和写入,没有对此表的更新 . 我认为这个表的读写之间的 balancer 大约是50/50,因此InnoDB会是更好的选择吗? 如果我想将表更改为InnoD...
  • 35 votes
     answers
     views

    将InnoDB表与MyISAM表连接起来

    我们有一组表,其中包含元级别数据,如组织,组织用户,组织部门等 . 所有这些表都将被阅读,只需很少的写操作 . 此外,表格大小非常小(最大记录数量约为30K - 40K) 另一组表存储OLTP数据,如账单交易,用户操作等,这些数据将同时读写 . 这些表格非常庞大(每张表约3000万条记录) 对于第一组表,我们计划使用MyISAM,第二组使用InnoDb引擎 . 我们的许多功能还需要来自这两组的...
  • 1 votes
     answers
     views

    MySQL:拥有InnoDB引擎的9个表是绝对正常的,但决定将1个表与MYISAM保持一个?

    我从MyISAM切换了所有,但是一个表到InnoDB引擎 . 最后的日志表怎么样?你插入那里但从不从那里选择(据我所知,MyISAM比这种情况下的InnoDB更好) . 我应该将它切换到InnoDB引擎以及它是最后一个未切换的表吗?或者,使用不同的引擎在许多表中保留1个表是绝对正常的吗?
  • 242 votes
     answers
     views

    MyISAM和InnoDB有什么区别? [重复]

    这个问题在这里已有答案: MyISAM versus InnoDB [closed] 25个答案 我知道之前已经问过这个问题,但大部分时间都会询问与特定数据库或表格有关的问题 . 我无法在这个网站上找到描述两个引擎及其差异的答案,而不考虑某些特定数据库 . 我希望将来能够在设计表或数据库时做出更明智的决策,所以我正在寻找关于两个存储引擎之间差异的全面答案 . MyISAM和InnoDB之间的区...
  • 1 votes
     answers
     views

    使用MyISAM进行读取,使用InnoDB进行数据写入

    我从性能的角度阅读了许多关于MyISAM和InnoDB比较的文章,我决定使用MyISAM来读取数据,使用InnoDB来编写数据 . 我想使用两个结构,如下图 . 两个相同(同步)的数据库但不同的表引擎 . What is your suggestions about this structure? What are disadvantages of this design?
  • 1 votes
     answers
     views

    将存储引擎从MyISAM更改为InnoDB - 所有表格一次 - 使用phpmyadmin

    我在mysql数据库中有100个表,并且都有存储引擎:MyISAM . 我想立即将他们的存储引擎更改为innoDB,我不想使用: 1.PHP(How to convert all tables from MyISAM into InnoDB? Laravel(Laravel & InnoDB) 一次一张 table . (how to change storage engine ...
  • 11 votes
     answers
     views

    将数据和索引数据保存在内存中 - InnoDB与MyISAM

    假设一个由1 GB数据和1 GB索引数据组成的数据库 . 为了最小化磁盘IO并因此最大化性能,我想为MySQL分配内存,以便包括索引在内的整个数据集可以保存在RAM中(假设机器有大量RAM) . InnoDB参数 innodb_buffer_pool_size 用于指定InnoDB用于缓存其表的数据和索引的内存缓冲区的大小 . (注意:内存用于数据 AND 索引 . ) MyISAM参数 key...
  • 0 votes
     answers
     views

    我现在在myisam(mysql)中有数据表 . 我应该使用innoDB的关系表吗? [关闭]

    是一个像 tid(int) zid(int) direction(tinyint) type(tinyint) 这样的列的表,具有非常繁重的读写操作,以及加入myisam中的其他表,最好是引入myisam或innodb? 有人告诉我,innodb的写入性能比myisam差 . 真的吗?每当没有用主键提取数据时,innodb也会像myisam一样拥有表锁 . 是否有任何技术可用于使用myisam和i...
  • 1 votes
     answers
     views

    将带有innoDB的MYSQL复制到MyISAM

    我对带有innoDB引擎的mysql表(来自库存系统)有一点问题 . 该表有几百万条记录,我想编写一个使用该表的小报告工具 . 由于引擎是innoDB,因此选择查询的速度很慢 . 所以我将表复制到新数据库并手动将引擎更改为myisam . 现在查询只需要大约50毫秒而不是像以前那样7秒 . 现在,我想要做的是写一个小的cronjob,它每晚将库存系统db复制到一个新数据库,并将引擎从innodb更...
  • 3 votes
     answers
     views

    myisam表类型对于日志表(mysql)真的更好吗?

    我一直在阅读是否使用myisam或innodb作为日志表(大量写入,很少读取) . 虽然有些人说myisam总体上更快,资源更少,但其他人说myisam实际上是更糟糕的选择,因为它只有表级锁定 . 有没有人有这种情况的实际经验并且小心分享他们的建议? 提前致谢
  • 2 votes
     answers
     views

    我应该使用MyISAM还是InnoDB(或其他东西)?

    我有一个基于PHP和MySQL的在线游戏(PHP 5.2.9和MySQL 5.0.91) . 最近我遇到的问题是,当我在表中删除数千行旧数据时,整个站点有时会冻结 . 当查询必须等待我假设的表锁并且游戏无法按预期运行时,我也遇到了奇怪的事情发生的问题 . 我的所有表都是MyISAM,每秒运行900多个查询 . 在整个数据库(约150个表)中,88%的查询是读取,只有12%的写入,但是一些表更接近5...
  • 2 votes
     answers
     views

    InnoDB或MyISAM用于会话?

    我正在将myisam表用于我正在构建的网站,因为它将主要是只读的 . 这就是为什么我认为myisam会更好 . 但我将用户会话存储在数据库中...这意味着对每个页面请求的会话表进行选择更新 . 因此,对于会话,我现在在表上有1/1读/写,如果我需要在会话上更新某些内容,那么写入可能会更高 . 我应该用innodb这样的 table 吗?或者1/1读/写比仍然是myisam没有问题的东西?该应用程序...
  • 2 votes
     answers
     views

    在这种情况下,MyISAM比mysql中的InnoDB快得多

    我一直在编写计算结果,该算法计算InnoDB表中客户之间的距离 . 例如,如果我的客户是A,B,C和D,则数据库中的表格如下所示: From | To | Distance A B 344 A C 274 A D 182 B C 338 等等...我认为我将达到5000万,这是很多行 ....
  • 4 votes
     answers
     views

    在其他表中分离更新列是否有助于优化(MySQL MyISAM表)?

    MySQL MyISAM“ Table1 ”具有 70% select , 13% update 和 0.67% insert 语句近似值 . 有一个“ count_column(int) ”用于增加主键的计数 . (更新语句) 更新“ count_column ”使表格选择查询 "Waiting for table level lock" 那么在其他表中分离“ count_c...

热门问题