文章列表
MySQL之SQL优化(五)
- 博客分类:
- mysql性能优化学习笔记
MySQL Schema设计
要避免以下的设计:
1. 太多的列,MySQL的存储引擎API工作时需要在服务器层和存储引擎层之间通过缓冲方式拷贝数据,然后在服务器层将缓冲内容解码成各个列。从行缓冲中将编码过的列转换成行数据的操作代价是很高的。转换的代价取决于列的数量。
2. 太多的关联,MySQL限制了每个关联操作最多只能有61张表。一个经验性的法则,如果希望查询执行的快,且并发性好,单个查询最好在12个表以内做关联。
3. 枚举,避免过度的使用Enum
4. 范式和反范式,
4.1范式的优缺点,当考虑到性能问题时,通常对schema进行范式化设计会带来好处,尤其是写密集的 ...
“良好的逻辑设计和物理设计是高性能的基石,应根据系统将要执行的查询语句来设计Schema,这需要权衡各种因素”
数据类型:
1.整数类型:
a) tinyint(8),smallint(16),mediumint(24),int(32),bigint(64)
值的范围从 ...
MySQL之SQL优化(三)
- 博客分类:
- mysql性能优化学习笔记
事务
1. 自动提交
对于事务类型的库表
> show variables like 'AUTOCOMMIT';
> set AUTOCOMMIT=1;
2. 通过修改配置文件来设置整个数据库的隔离级别,也可以通过以下语句只改变当前会话的隔离级别
> SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITED;
MySQL可识别4个ANSI定义的隔离级别,InnoDB引擎支持这个四个隔离级别。
3. 隐式锁定和显式锁定
a) InnoDB采用两阶段锁定协议(two-phase locking ...
MySQL之SQL优化(二)
- 博客分类:
- mysql性能优化学习笔记
创建更好的索引
1.覆盖索引,当QEP在Extra列中显示Using index时,不意味访问底层数据库时使用了索引,他代表只有这个索引才是足查询要求的。这种索引可以为大型查询或者频繁执行的查询带来显著的性能提升,称为覆盖索引,故名思义,因为他满足了查询中给定表用到的所有列。要创建一个覆盖索引,他必须包含指定表上包括where子句,order by子句,group by子句(如果有的话)以及select语句中的所有列
* InnoDB中主键值会附加到非主键索引的每一个对应记录后边,因此没有必要在非主键索引中指定主键,即InnoDB引擎中所有非主键索引都隐含主键列
*尽量不在查询中使用s ...
1. 创建索引,myslq支持重复索引,但是多余的索引会带来性能开销;
a) 利用索引可以减少查询读取的行数
b) 提高表连接操作的性能
c) 如果where子句中条件以通配符开头,则mysql不使用索引
d) mysql不支持基于索引的函数
e) ...
CREATE PROCEDURE [dbo].[SP_FindValueInDB]
(
@value VARCHAR(1024)
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @sql VARCHAR(1024)
DECLARE @table VARCHAR(64)
DECLARE @column VARCHAR(64)
CREATE ...
Spring在TransactionDefinition接口中定义这些属性
在TransactionDefinition接口中定义了五个不同的事务隔离级别
ISOLATION_DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应
ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读
ISOLATION_READ_COMMITTED 保证一个事务修改的数据提交后才能被另外一个 ...
cxf configuration
- 博客分类:
- web service
cxf
1. server side
@WebService
public interface Service extends Remote {
@WebMethod
public List<Integer> getAll() throws RemoteException;
}
@WebService(endpointInterface="package.Service", serviceName="Service")
public class ServiceImpl implements Service {
@Override
p ...
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹 ...
如果onclick事件原先有值,要先清空,再用click( eval(function(){.....}) )赋值:
$("input[name='orderCar']").attr('onclick','').click( eval(function(){warningT()}));
function warningT(){
alert("新的事件!");
return;
}
配置启用注解(注意以下配置需要使用spring2.5的头文件,在spring3.0中不适用)
1.使用简化配置
Spring2.1添加了一个新的context的Schema命名空间,该命名空间对注释驱动、属性文件引入、加载期织入等功能提供了便捷的配置。我们知道 ...
附件是完整的project,下载后直接import即可。
JVM中,内存分为stack和heap。
1. stack是jvm的内存指令区。管理简单,速度快,每次push或pop定长的数据或指令。java基本类型,指令代码,常量都保存在stack。由于Stack的内存管理是顺序分配的,而且定长,不存在内存回收问题
2. heap是jvm的内存数据区。管理复杂,每次分配不定长内存空间保存对象的实例,实际保存对象实例的属性值,属性类型和对象本身的类型标记,并不保存对象方法,因为方法是指令,保存在stack中。在heap中为对象实例分配好内存后,需要在stack中保存一个4Byte的heap内存地址,用来定位对象实例在heap中的位置,便于查找。Heap 则是 ...
ClearCase功能概括(参见下图):版本管理,过程管理,工作空间管理,bulid管理。
基本概念:
Element
纳入配置管理的包括版本信息的对象,包括文件与目录。
VOB
Version Object Base,存放Element以及其他CC配置信息的库。
PVOB
Project VOB,用于存放UCM项目的VOB。一个UCM项目必须存放于一个PVOB中,而一个PVOB可以存放一个或者多个UCM项目。
UCM
Unified Changed Management的缩写,统一变更管理模式。在CC中有两种项目管理的模式:Base ClearCase 和 UC ...
dpkg --get-selections|grep linux #列出当前的内核。带image的则是已经安装的内核
sudo apt-get remove linux-image${release-no}-generic #删除该版本