1.尽量不要写太过复杂的SQL查询,不要想着非要一次性将结果全部以前端要求的形式返回出来,可以多次分开查询,这样逻辑清晰,问题解决速度快,方便维护,并且SQL的效率也高. 2.在使用联表查询的时候,关联表的表长一定不能过长,不然十分影响查询效率.工作中的实际情况是,当关联表表长接近1000时,速度就有明显下降. 3.有关GROUP BY: GROUP BY分组后,结果是汇聚成"组"的形式,多用于去重或者返回不同组内的统计数据,如最大值什么的,即只返回同一组数据中的一个值,可以和grou…
分号不能少:分号不能少:分号不能少:重要的事情说3遍 Insert或者Update的数据包含反斜杠\的时候需要进行转义\\,例:insert into tablename(id,name) values(1,'刘\\一哥'); -- 保存到数据库后就是 1 刘\一哥 一.变量申明(非常重要) 1.带@的变量不需要申明直接使用 select columnname into @V_ColumnName from tablename Limit 0,1; select @V_ColumnName; 2…
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是根据官网中的每个一点来翻译.举例.验证的:英语不好,所以有些话语未必准确,请自行查看官网,若有些点下面没有例子的是因为当时一下子没有想出那么多来,如果大家有遇上好的例子,欢迎在下面留言我持续更新 查看执行计划的关键EXPLAIN 版本MYSQL5.6,用到的库是官网例子sakila,自行下载导入 由于要把每个点都翻译出来,还需要举例,所以需要一定的时间…
学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说说这些天研究的 这里博主以数字类型注入类型进行讲解,字符类型同理,这里不在敖述. 我们的环境:phpstudy+mysql+php 我们的测试代码如下: <meta http-equiv="Content-Type" content="text/html; charset=…
1.在做条件判断时,不要将变量放在判断符的左边,这样做可以防止出现空指针异常,以字符串比较为例: String name = "Tom"; //这种方式不推荐,如果变量name为空,会出现空指针异常 if(name.equals("Tom")) { //balabala.... } //推荐这种方式,调用的是"Tom"这个字符串常量的equals方法,可避免空指针异常 if("Tom".equals(name)) { //ba…
排查问题技巧: MySQL Cluster 自带了一个错误代码的查看的小程序.通过这个小东西我们可以方便的定位问题的原因. 这个程序就是 perror 在MYSQL安装目录的bin下面. 如报错:ERROR 1005 (HY000) at line 474868: Can't create table 'Table Name'(errno: 136) 你可以用perror命令查询 错误原因: #/usr/local/mysql/bin/perror --ndb 136 MySQL error c…
基本概念——库 1.数据库服务器:库——>表——>行/列 2.cmd下链接: mysql – uroot –proot 3.创建库:create database  php; 3.看数据库下有哪些库: show databases; 4.选中某个库:use php;5.删除某个库:drop database test; 基本概念——表 6.显示某个库的表格:show tables; 7.mysql本身并没有提供修改数据库名字的语句,但可以曲径修改 8.创建一个表:create table cl…
一.修改用户密码 格式(在命令行下输入):mysqladmin -u 用户名 -p旧密码 password 新密码 1. 给root添加密码ab12:  mysqladmin -uroot -password ab12 2. 将root的密码修改为djg345:    mysqladmin -uroot -pab12 password djg345 二.添加新用户 格式:grant 权限 on 数据库名.表名 to 用户名@登录主机  identified by "密码" 1. 增加一…
记录一些日常的mysql常用的使用, 方便随用随查. 一.表结构 1.1 查看表结构 方式1: 可以查看建表语句,完整的表结构. show create table table_name; 方式2:可以比较好的筛选自己要查的表信息,方便整理表结构文档. # 查询表所有列信息 select * from information_schema.columns where table_schema = 'db' #表所在数据库 and table_name = 'tablename' ; #你要查的表…
1.is null可以使用索引(网上很多文章存在误导,这个确实可以使用索引),is not null无法使用索引. 2.为什么重复数据较多的列不适合使用索引? 假如索引列TYPE有5个键值,如果有1万条数据,那么 WHERE TYPE = 1将访问表中的2000个数据块. 再加上访问索引块,一共要访问大于2000个的数据块. 如果全表扫描,假设10条数据一个数据块,那么只需访问1000个数据块,既然全表扫描访问的数据块少一些,肯定就不会利用索引了. 3.MySQL主要提供2种方式的索引:B-Tr…