经常使用的快捷键: 1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的sql语句 5.ctrl+shift+r 只运行选中的sql语句 6.F6 打开一个mysql命令行窗口 7.ctrl+l 删除一行 8.ctrl+n 打开一个新的查询窗口 9.ctrl+w 关闭一个查询窗口 多表查询结果连接显示: UNION自动去除重复行:UNION ALL 重复行保留 limit和between的用法: select…
学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说说这些天研究的 这里博主以数字类型注入类型进行讲解,字符类型同理,这里不在敖述. 我们的环境:phpstudy+mysql+php 我们的测试代码如下: <meta http-equiv="Content-Type" content="text/html; charset=…
对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平分割.垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程 [模块化编程,可以提高速度] f: 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] g: mysql服务器硬件升级 h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM)…
insert ignore insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据 如果您使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_name)处理.因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1. MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值 数据类型转换 CAST(value as typ…
1.mySql 删除表中大批量的数据 假设有一个表(logs)有2000万条记录,我们要在业 务不停止的情况下删除其中status=1的所有记录,差不多有1800万条,直接执行 DELETE FROM logs WHERE status=1 会发现删除失败,因为lock wait timeout exceed的错误.因为这条语句所涉及的记录数太多了,因此我们可以分批来删除,比如每10000条进行删除,那么我们可以利用MySQL这样的语句来 完成 DELETE FROM logs WHERE st…
1 强制命中索引:force index 某些时候查询,索引会失效,可以进行强制命中索引 2 group_concat 能将相同的行组合起来. 当然,我推荐这种操作可以在代码中操作,如果必须在特定情况下使用,可以使用这个函数 例如: select * from aa; +------+------+ | id| name | +------+------+ | | | | | | | | | | | | | | | | | | +------+------+ rows in set (0.00…
停止启动MySQL服务 停止:net stop mysql启动:net start mysql 查看正在运行的线程 SHOW PROCESSLIST SHOW FULL PROCESSLIST 杀死线程 上面的查看线程的方式里,如果你发现有一个线程长时间未执行完毕,想停掉它,可以使用下面的方式 KILL 5482564    后面的数字是Id 免安装版的安装与卸载 mysqld installmysqld remove 进入MySQL控制台 mysql -u root -p…
一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 GROUP_CONCAT(Name SEPARATOR ',') 需注意: 1.GROUP_CONCAT()中的值为你要合并的数据的字段名; SEPARATOR 函数是用来分隔这些要合并的数据的: ' '中是你要用哪个符号来分隔: 2.必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录 根据经纬度计算两点间的距离 ,),`latitude1` ,),`longitude2` ,),`latitude…
碎片整理: mysql数据一开始是在磁盘上顺序存放的,如果数据表有频繁的update改动,那么数据就会形成很多碎片,拖慢速度和不利于索引: 优化碎片有两种方式: alter table user engine innodb;其实user这个表原先也是innodb的,这句话看上去没有任何意义,但是mysql会重新规整数据 optimize table user; 也可以修复: 碎片优化是一种很费cpu和内存的事,最好在夜里执行: 非常规 的 min  max 优化 select min(age)…
数据字段中存放的是id集,形如  1,2,15,35   也可类推json格式 查询时不用拆分了, 用上 instr.concat搜索和连接字符串 查询fids中包含15的 select * from table where instr(concat(',', fids, ','), ',15,') > 0 查询时,多个字段 like 同个值 select * from table where concat(name, title) like '%哈哈%';…