• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






曹军曹军

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2018年3月24日

分库分表
摘要: 数据库读写分离和垂直分库(不同表无关联表放不同的库)、水平分表。 mysql-proxy代理加MySQL主从实现读写分离。 分表分库策略: http://blog.csdn.net/xlgen157387/article/details/53976153 主要是通过ID取模,根据模值,将数据分到不同 阅读全文
posted @ 2018-03-24 11:51 曹军曹军 阅读(89) 评论(0) 推荐(0)
 
索引失效
摘要: 1.WHERE字句的查询条件里有不等于号(WHERE column!=…) 2.WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=…) 3.在JOIN操作中,MYSQL只有在主键和外键的数据类型相同时才能使用索引,否则即使建立了索引也不会使用 4.如果WHERE使用了LI 阅读全文
posted @ 2018-03-24 11:49 曹军曹军 阅读(127) 评论(0) 推荐(0)
 
Hash索引与BTree索引
摘要: Hash索引,当我们要给某张表某列增加索引时,将这张表的这一列进行哈希算法计算,得到哈希值,排序在哈希数组上。所以Hash索引可以一次定位,其效率很高,而Btree索引需要经过多次的磁盘IO,但是innodb和myisam之所以没有采用它,是因为它存在着好多缺点: 1、因为Hash索引比较的是经过H 阅读全文
posted @ 2018-03-24 11:48 曹军曹军 阅读(377) 评论(0) 推荐(0)
 
防止SQL注入
摘要: 不采用SQL拼接,而采用SQL语句的预编译(prepare)和查询参数绑定功能。 #{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。 order by语句后用了${},那么不做任何处理的时候是存在SQL注入危险的。更精确的过滤则可以查询一下输入的参 阅读全文
posted @ 2018-03-24 11:18 曹军曹军 阅读(216) 评论(0) 推荐(0)
 
SQL优化
摘要: 1.查询应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.尽量避免在 where 子句 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null 可以在num上设置默认值0,确保表 阅读全文
posted @ 2018-03-24 11:13 曹军曹军 阅读(106) 评论(0) 推荐(0)
 
数据查询优化工具:执行计划
摘要: Mysql:explain select * from abs_cp where cpjc='' Oracle:sql语句后F5 阅读全文
posted @ 2018-03-24 11:09 曹军曹军 阅读(108) 评论(0) 推荐(0)
 

2018年3月23日

组合索引
摘要: 生效原则:从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用,断点后面的索引没有起作用;索引使用与顺序无关。 (0) select * from mytable where a=3 and b=5 and c=4; abc三个索引都在where条件里面用到了,而且都发挥了作 阅读全文
posted @ 2018-03-23 14:55 曹军曹军 阅读(298) 评论(0) 推荐(0)