- 博客(7)
- 收藏
- 关注
转载 分库分表
数据库读写分离和垂直分库(不同表无关联表放不同的库)、水平分表。mysql-proxy代理加MySQL主从实现读写分离。分表分库策略:http://blog.csdn.net/xlgen157387/article/details/53976153主要是通过ID取模,根据模值,将数据分到不同的库表中。使用mysqlreplicate命令快速搭建 Mysql 主从复制。...
2018-03-24 11:51:00 82
转载 索引失效
1.WHERE字句的查询条件里有不等于号(WHERE column!=…)2.WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=…)3.在JOIN操作中,MYSQL只有在主键和外键的数据类型相同时才能使用索引,否则即使建立了索引也不会使用4.如果WHERE使用了LIKE和REGEXP,只有在第一个字符不是通配符时才使用索引。比如LIKE 'abc%...
2018-03-24 11:49:00 113
转载 Hash索引与BTree索引
Hash索引,当我们要给某张表某列增加索引时,将这张表的这一列进行哈希算法计算,得到哈希值,排序在哈希数组上。所以Hash索引可以一次定位,其效率很高,而Btree索引需要经过多次的磁盘IO,但是innodb和myisam之所以没有采用它,是因为它存在着好多缺点:1、因为Hash索引比较的是经过Hash计算的值,所以只能进行等式比较,不能用于范围查询1、每次都要全表扫描...
2018-03-24 11:48:00 137
转载 防止SQL注入
不采用SQL拼接,而采用SQL语句的预编译(prepare)和查询参数绑定功能。#{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。order by语句后用了${},那么不做任何处理的时候是存在SQL注入危险的。更精确的过滤则可以查询一下输入的参数是否在预期的参数集合中。第二种避免SQL注入攻击的方式:存储过程。存储过程...
2018-03-24 11:18:00 97
转载 SQL优化
1.查询应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.尽量避免在 where 子句 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where...
2018-03-24 11:13:00 59
转载 数据查询优化工具:执行计划
Mysql:explain select * from abs_cp where cpjc=''Oracle:sql语句后F5转载于:https://www.cnblogs.com/caojun8300/p/8637977.html
2018-03-24 11:09:00 119
转载 组合索引
生效原则:从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用,断点后面的索引没有起作用;索引使用与顺序无关。(0) select * from mytable where a=3 and b=5 and c=4;abc三个索引都在where条件里面用到了,而且都发挥了作用(1) select * from mytable where c...
2018-03-23 14:55:00 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人