我正在研究涉及大量数据库写入的项目,我会说(70%的插入和30%的读取).该比率还包括我认为是一次读取和一次写入的更新.读取可能很脏(例如,在读取时我不需要100%准确的信息).
有问题的任务将是每小时进行超过100万次数据库事务.
我在网上看到了一些关于MyISAM和InnoDB之间差异的东西,对于我将用于此任务的特定数据库/表格来说,MyISAM似乎是我的明显选择.从我似乎正在阅读的内容来看,如果需要事务处理,InnoDB很好,因为支持行级锁定.
有没有人有这种负载(或更高)的经验?MyISAM是走的路吗?
每次都设置一个新的SQL表或varchar向现有表添加一个新列,我想知道一件事:什么是最好的值length.
所以,比方说,你有一个名为nametype 的列varchar.所以,你必须选择长度.我想不出一个名字> 20个字符,但你永远不会知道.但不是使用20,而是总是向下舍入到下一个2 ^ n数字.在这种情况下,我会选择32作为长度.我这样做,因为从计算机科学家的角度来看,数字2 ^ n看起来even比其他数字更多,我只是假设下面的架构可以比其他更好地处理这些数字.
另一方面,当您选择创建varchar列时,MSSQL服务器将默认长度值设置为50.这让我想到了.为什么50?它只是一个随机数,还是基于平均列长,或者是什么?
它也可能 - 或者可能是 - 不同的SQL服务器实现(如MySQL,MSSQL,Postgres,...)具有不同的最佳列长度值.
我想知道,如果我有一个200个字符的VARCHAR并且我放了100个字符的字符串,它会使用200个字节还是只使用字符串的实际大小?
可能重复:
MySQL表中varchar长度的重要性
使用VARCHAR时(假设这是短字符串的正确数据类型)大小是否重要?如果我将它设置为20个字符,是否会占用更少的空间或快于255个字符?
我正在使用mySQL来建立股票期权数据库.大约有330,000行(每行是1个选项).我是SQL的新手,所以我试图决定字段类型,如选项符号(4到5个字符),股票代码(1到5个字符),公司名称(从5到60不等)字符).
我想优化速度.两者都创建了数据库(当新的价格数据出来时每5分钟发生一次 - 我没有实时数据馈送,但它几乎是实时的,因为我得到一个新的文本文件,其中有330,000行传送给我每5分钟;这个新数据完全取代以前的数据),也用于查找速度(将有一个基于Web的前端,许多用户可以运行即席查询).
如果我不关心空间(因为数据库生命周期是5分钟,每行包含大约300字节,所以整个事情可能只有100MB)那么构建字段的最快方法是什么?
实际上,数字字段的问题相同:int(11)和int(7)之间是否存在性能差异?对于查询和排序,一个长度是否比另一个更好?
谢谢!
varchar列如何由数据库引擎在内部处理?对于定义为char(100)的列,DBMS在磁盘上分配100个连续字节.但是对于定义为varchar(100)的列,可能并非如此,因为varchar的整个点不会分配比存储列中存储的实际数据值所需的更多空间.因此,当用户将包含空varchar(100)列的数据库行更新为包含80个字符的值时,该80个字符的空间从哪里分配?似乎varchar列必须导致实际数据库行的大量碎片,至少在最初将列值插入为空或NULL的情况下,然后使用实际值进行更新.这种碎片是否导致数据库查询性能下降,而不是使用char类型值,其中存储在行中的列的空间是连续分配的?显然使用varchar会产生比使用char更少的磁盘空间,但是在优化查询性能时会出现性能损失,特别是对于在初始插入后经常更新其值的列?
我通常将所有varchars设置为255以确保安全.它在磁盘空间或其他方面有什么不同吗?拥有更大的varchars/ints /其他领域是否有任何不足之处?
我看到评论"如果varchar(20)列中有10到15个字符之间有5000万个值,而varchar(50)列中有5000万个值,它们将占用完全相同的空间.这就是整点varchar,而不是char." 任何人都可以告诉我原因吗?请参阅人员"姓名"字段的合理长度限制是什么?
嗨,我想知道何时应该使用不同的数据类型.如在我的表中,我如何决定使用哪个:nvarchar,nchar,varchar,varbinary等.
例子:
我将用于...列:
Phone number,
Address,
First Name, Last Name,
Email,
ID number,
etc.
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
mysql ×7
sql ×4
varchar ×4
database ×3
performance ×2
innodb ×1
myisam ×1
php ×1
postgresql ×1
scalability ×1
sql-server ×1
types ×1