我希望如果我的问题不合时宜,那么你们就会让我过去。在DBMS方面,我一点也不擅长,在我7年多的IT经验中,我能够写出一些东西。基本查询(在Google的帮助下)。
我正在开发自己的项目,我已经完成了设计阶段,并且将清除我需要为项目提供的所有表结构。我将使用MySQL进行此项操作,因为项目具有这些功能小型CMS本身就意味着需要在数据库大小处理大量数据。
我正在使用TOAD for MySQL为MySQL创建架构和其他东西,但在这样做的时候我几乎没有想要在开始时解决的问题。
对数据库方面知之甚少这些问题一直在我脑海中浮现,我们将不胜感激。
答案 0 :(得分:2)
你应该坚持使用InnoDB。它具有事务和行级锁定。对于高(写入)并发,行级锁定允许同时有多个INSERT / UPDATE / DELETE。 MyIsam具有表锁定功能,这意味着一次只能修改一个查询。如果你读得很重,MyISAM可能会表现得更好。例如SELECT COUNT(*) FROM table;
是MyISAM可以立即回答的统计事物,而InnoDB实际上是COUNT()。 InnoDB允许您定义表之间的连接(外键约束),以帮助您保持数据完整性。
如果您对上述内容感兴趣,我建议您阅读O'Reilly Media的高性能MySQL。
关于字符集,您应确保所有表/列使用相同的字符集。最好是Unicode(UTF8)。确保您的mysql客户端也设置为使用UTF8,以避免(透明)音译的数据。 (事实上,确保整个应用程序从存储到显示都是UTF8。)
Collation是一种允许您将文本定义为UTF8,但在德语中使用上下文的内容。有了这些知识,MySQL将根据德语规则正确地对“fööbar”和“foobar”进行排序。 (除其他事项外)。我通常使用“utf8_general_ci”。看看mysql上的一些例子:http://dev.mysql.com/doc/refman/5.0/en/charset-collation-effect.html
答案 1 :(得分:1)
可能你会得到更好的答案,但很快就会有我的经历:
我希望这有帮助。