了解下MySql 5.1的分区表。功能实现的怎么样?性能如何? 据说5.1有这个功能,有谁用过没有。功能实现的是不是和mssql差不多了?操作性怎么样?性能表现如何?如果有实验数据,加分伺候着。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MySQL 目前支持水平分区,也就是针对行的分区,主要有四种分区类型: * RANGE 分区 * LIST 分区 * HASH 分区 * KEY 分区 --类似 HASH 分区,只是要根据用户定义的表达式来进行分区MySQL 的 Key 分区类型,和微软的 Yukon (SQL Server 2005) 的分区方式很类似的,相对灵活一些,而 Oracle 的复合分区则为范围分区与 HASH 的结合体,这样略失灵活,但是便于管理。目前的 MySQL 分区实现上有限制:分区和索引必须是分区的。也就是说,MySQL 目前还没有类似 Oracle 全局索引(Global Index)的概念,而只支持 Local Index 。如果有时间的话,倒是很想测试一下 MySQL 分区的更多技术细节。Yukon分区可以通过Transact-SQL(或者其他的.NET语言)中用户定义的函数来实现,通过以下三步来做到: * 1.创建一个分区函数来指定表该如何使用该函数分区 * 2.创建一个分区模式来指定应用该分区函数的分区在文件组上的位置 * 3.创建一个表或者索引使用该分区模式SQL Server 现在也提供非分区表到分区表的转换。其步骤是需要先创建一个伪分区表,然后和真实的分区表交换数据。如果删除分区内的数据,居然也要先创建一个伪分区表,然后和真实的分区表进行交换操作,这个稍嫌麻烦些。Oracle 则早已经实现了“分区交换”类似的功能。而且,从DBA的角度上来说,多分区内的数据操作更为灵活,删除分区数据只需要 TRUNCATE 相关分区即可。 分区表只有在多磁盘(尤其是raid)多cpu的服务器上才有性能提升,它是利用并行处理来提高性能,普通机器只会更慢 MYSQL的分区表功能与SQL2005相比,还是有差距的,毕竟是FREE的,如果 你没有raid的话,最好不用 本身是在mssql服务器上做事的。为了节约成本,转战mysql,哈哈mysql分区貌似比mssql的更灵活?不过mssql分区有统一的分区函数,调整一个函数就等于调整了所有引用该函数所有的表,也就实现了所谓的表对齐。从手册上看,mysql好像每张表都单独定义分区方式,并没有像mssql一样拥有一个通用的函数分区? http://blog.chinaunix.net/u/29134/showart_493359.html 分区功能ORACLE是最强的,mysql分区貌似比mssql的更灵活? yes从手册上看,mysql好像每张表都单独定义分区方式,并没有像mssql一样拥有一个通用的函数分区?呵呵,没有,大概灵活就在就个方面 like语句后面加上逻辑表达式的不解 求助:Mysql 错误码1064 Cannot convert value '0000-00-00 00:00:00' from column 37 to TIMESTAMP. mysql+php 插入数据乱码,读取不乱码? 新手,如何定义一个表中各个域的大小? mysql删除中间某条记录的问题。 求助:这个SQL语句怎么写? 关于mysql数据库操作日志查看的问题 mysql在linux下安装的问题,谢谢。 mysql时间比较 mysql建表问题 查询视图快还是连表查询快?
* LIST 分区
* HASH 分区
* KEY 分区 --类似 HASH 分区,只是要根据用户定义的表达式来进行分区MySQL 的 Key 分区类型,和微软的 Yukon (SQL Server 2005) 的分区方式很类似的,相对灵活一些,而 Oracle 的复合分区则为范围分区与 HASH 的结合体,这样略失灵活,但是便于管理。目前的 MySQL 分区实现上有限制:分区和索引必须是分区的。也就是说,MySQL 目前还没有类似 Oracle 全局索引(Global Index)的概念,而只支持 Local Index 。如果有时间的话,倒是很想测试一下 MySQL 分区的更多技术细节。Yukon分区可以通过Transact-SQL(或者其他的.NET语言)中用户定义的函数来实现,通过以下三步来做到: * 1.创建一个分区函数来指定表该如何使用该函数分区
* 2.创建一个分区模式来指定应用该分区函数的分区在文件组上的位置
* 3.创建一个表或者索引使用该分区模式SQL Server 现在也提供非分区表到分区表的转换。其步骤是需要先创建一个伪分区表,然后和真实的分区表交换数据。如果删除分区内的数据,居然也要先创建一个伪分区表,然后和真实的分区表进行交换操作,这个稍嫌麻烦些。Oracle 则早已经实现了“分区交换”类似的功能。而且,从DBA的角度上来说,多分区内的数据操作更为灵活,删除分区数据只需要 TRUNCATE 相关分区即可。
从手册上看,mysql好像每张表都单独定义分区方式,并没有像mssql一样拥有一个通用的函数分区?
呵呵,没有,大概灵活就在就个方面