针对单个表过大造成的性能问题,MySQL在5.1开始引入了分区表(partition),可以将数据在内部拆分存储,对应用透明,但是分区表只能将表在同一个数据库内部分解,而且对于表的维护(比如执行alter table)还是比较麻烦。手工分表也是一个解决方法,手工分表还有一个好处是可以将表分布到不同的服务器中,实现分布式存储。但是手工分表要求应用程序做相应的改写,以支持从不同的表中来存取数据。
HSCALE简单来说就是一个支持手工分表的中间层,对于应用来说看起来还是一个表,而由HSCALE来负责底层子表的数据存取。HSCALE是基于MySQL Proxy的一个插件应用,通过MySQL Proxy的lua脚本拦截分拆对应的SQL语句来实现数据的分布存储,而且使用lua脚本可以自由定制分表策略,比起MySQL自己的partition更加灵活些。现在版本还是0.2,功能有限,只能实现同库分表,但是基于MySQL Proxy的架构,未来要实现示分库分表也不是什么难事。
MySQL数据表支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB,这六种又分为两类,单独一类是BDB,称为'事务安全型'(transaction-safe),其余都属于第二类,称为“非事务安全型'(non-transaction-safe)。下面详细介绍这些表:
事务安全型
BDB 全称是'Brekeley DB',它是Mysql具有事务能力的表的类型,由Sleepycat Software
(http://www.sleepycat.com)开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在电子银行中事务控制能力是非常重要的。
非事务安全型
HEAP
HEAP表是MySQL表中访问最快的表,主要是由于这类表使用保存期在内存中的散列索引,但必须注意的是,如果MySQL或者服务器崩溃,表中数据全部丢失。
ISAM
ISAM表是MyISAM类型出现之前,MySQL表使用的默认类型,建议改用MyISAM。
MEREG
MEREG是一种值得关注的新式表,它是由一组MyISAM表组成,之所合并主要出于性能上考虑,因为它能够提高搜索速度,提高修复效率,节省磁盘空间。
MyISAM
MyISAM是MySQ
| 分类:KM(学习笔记) |
| 分类:KM(程序相关) |
private void Page_Load(object sender,
System.EventArgs e)
{
| 分类:KM(程序相关) |
| 分类:KM(程序相关) |
| 分类:KM(程序相关) |
JS_Scriptblock:
function CallServer(inputcontrol,context)
| 分类:KM(程序相关) |
HTML中几个Tag比较有用,平时大家用得比较少,而且是符合W3C XHTML标准的。
1. Label
Label是用来标记Input元素的提示的。例如:
<label for='id_name'>Name</label><br />
<input type='text' name='name' id='id_name' size='20'/>
Label的“For”属性要和Input元素的ID相一致。
好处:点击提示文字,就自动Focus对应的输入元素。对于Radio,Checkbox这类点击区域特别小的控件特别有用:
Color:<br />
<input type='checkbox' name='color' id='color_r'
value='red'><label for='color_r'> red</label><br
/>
<input type='checkbox' name='color' id='color_g'
value='green'><label for='color_g'>
green</label><br />
<input type='checkbox' name='color' id='color_b'
value='blue'><label for='color_x'>
blue</label><br />
<!--如果For和ID不匹配,
| 分类:KM(程序相关) |