2013年8月3日
摘要: 1. 从SqlSessionDaoSupport开始通常我们使用MyBatis会让自己的DAO继承SqlSessionDaoSupport,那么SqlSessionDaoSupport是如何运作的呢,下面是SqlSessionDaoSupport的源代码/* * Copyright 2010 The myBatis Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the 阅读全文
posted @ 2013-08-03 23:24 ZimZz 阅读(15571) 评论(0) 推荐(2) 编辑
摘要: MySQL查询缓存可以跳过SQL解析优化查询等阶段,直接返回缓存结果给用户,查询缓存的工作流程如下:命中条件缓存存在一个hash表中,通过查询SQL,查询数据库,客户端协议等作为key.在判断是否命中前,MySQL不会解析SQL,而是直接使用SQL去查询缓存,SQL任何字符上的不同,如空格,注释,都会导致缓存不命中.如果查询中有不确定数据,例如CURRENT_DATE()和NOW()函数,那么查询完毕后则不会被缓存.所以,包含不确定数据的查询是肯定不会找到可用缓存的工作流程1. 服务器接收SQL,以SQL和一些其他条件为key查找缓存表(额外性能消耗)2. 如果找到了缓存,则直接返回缓存(性能 阅读全文
posted @ 2013-08-03 11:02 ZimZz 阅读(26207) 评论(0) 推荐(3) 编辑