mysql
kirsten_z
一步一脚印
展开
-
sql防注入攻击与xss攻击
SQL注入简介 sql注入及时攻击者将sql命令插入到web表单的输入域或页面请求的查询字符串,欺负服务器执行恶意的sql命令方法 1)验证数据,根据相应类型进行严格的验证 字符,先通过sprintf函数格式化输出,再通过一些安全函数去掉一些不合法的字符,如addslashes()方法等 2)参数化绑定,PHP 中的 mysqli 和 PDO 可实现参数绑定 参考文档: http转载 2016-09-12 17:12:19 · 790 阅读 · 0 评论 -
PHP 四种基础算法
冒泡排序 思路:每次循环排列出一个最大的数 选择排序 思路:每一趟在n-i+1(i = 1,2,…,n-1)个记录中选择关键字最小的记录作为有序序列中第i个记录,其中最简单的是简单选择排序,其过程如下:通过n-i次关键字间的比较,从n-i+1个记录中选择出关键字最小的记录,并各第i个记录交换之。 插入排序 思路:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插原创 2016-09-12 17:44:43 · 8466 阅读 · 0 评论 -
laravel数据批量操作
1、批量更新 使用case when 拼sql 参照网址: http://www.cnblogs.com/bruceleeliya/p/3310137.html 2、数据库操作三种方式 参照网址: http://blog.csdn.net/zls986992484/article/details/52824962 3、转载 2016-12-30 10:15:38 · 2563 阅读 · 0 评论 -
SQL语句优化技巧
1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置转载 2017-08-11 16:59:20 · 250 阅读 · 0 评论 -
mysql单表百万数据记录分页性能优化
说明1)问题:单个数据表含有百万条记录,造成访问时很慢,分页数大时更慢 2)解决:主要使用limit来分页,针对limit分页问题性能优化示例 1、测试示例 sql语句: select * from product limit start, count当起始页较小时,查询没有性能问题,分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条)select * from转载 2017-08-11 15:14:35 · 452 阅读 · 0 评论 -
mysql--基准测试
1、吞吐量–单位时间内的事务处理数 主要针对在线事务处理(OLTP)的吞吐量,非常适用于多用户的交互式应用。常用的测试单位是每秒事务数(TPS),或每分钟事务数(TPM)。 2、响应时间或延迟–测试任务所需的整体时间 3、并发性 1)web服务器的并发性:表示会话存储机制可以处理多少数据的能力;在任意时间有多少同时发生的并发请求 2)并发性基准测试关注点:正在工作中的并发操原创 2017-02-09 16:29:12 · 264 阅读 · 0 评论 -
MySQL中concat函数(连接字符串)
1、concat–连接字符串 concat函数可以连接一个或者多个字符串,若其中一个为null,则返回nullmysql> select concat(‘11’,’22’,’33’); +————————+ | concat(‘11’,’22’,’33’) | +————————+ | 112233 | +————————+2、concat_ws使用方法: CONCAT_WS(sep转载 2017-01-13 15:35:32 · 33298 阅读 · 1 评论 -
记录查询,去重,清空记录
1、distinct (str) 用户去掉重复记录,针对某个字段返回的是不重复记录的条数,而不是不重复记录的所有值只能返回目标字段,无法返回其他字段select distinct (name) from tablename2、group by 根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总select * from tablename group by name,age原创 2016-09-18 14:09:45 · 3709 阅读 · 0 评论 -
MySQL锁表
1、锁:计算机协调多个进程或线程并发访问某一资源的机制2、MySQL锁:不同的存储引擎支持不同的锁机制1)页级锁:引擎DBD(也支持表级锁)开销和枷锁时间结余表锁和行锁间;会出现死锁;锁定力度介于表锁和行锁间,并发度一般2)表级锁:引擎MyISAM、MEMORY锁住整个表,可同时读,写不行开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突概率最高,并发度最低适合以查询为主,只有少量按索引条转载 2016-09-18 14:16:33 · 317 阅读 · 0 评论 -
MySQL存储引擎
InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表创建时使用engine=…或type=…指定所要使用的引擎查看指定表的引擎:show table status from DBname主要引擎分类:MyISAM、InnoDB、MEMORY和MERGE1、MyISAM1)不支持事务、外键,访问速度快2)对事务完整性没有要求,以select,insert为主可使用3)磁盘储存3个文件转载 2016-09-18 14:15:46 · 204 阅读 · 0 评论 -
mysql数据库设计优化
1、选取最适用的字段属性1)数据库中的表越小,查询效率越高,所以将表中字段的宽度设计的尽可能小2)字段设置为not null,减少比较Null值3)对于省份与性别等,可定义为enum类型(数值型数据,处理速度比文本类型快)2、适用连接(join)代替子查询(sub-queries)使用join减少MySQL在内存创建临时表来完成逻辑上的两个步骤3、使用联合(union)代替手动创建的临时表使用转载 2016-09-18 14:13:41 · 347 阅读 · 0 评论 -
锁与事务机制
锁1、目的:保证数据的一致性,对并发操作进行控制2、分类从数据操作的类型分:1)读锁(共享锁):针对同一块数据,多个读操作同时进行互不影响2)写锁(排他锁):当前写操作没完成前,其它写锁和读锁会被阻断从锁定的数据范围分:1)表锁2)行锁为了尽可能提高数据库的并发度,每次锁定的数据范围越小越好,理论上每次只锁定当前操作的数据的方案会得到最大的并发度,但是管理锁是很耗资源的事情(涉及获取,检查,转载 2016-09-18 14:13:06 · 272 阅读 · 0 评论 -
深入理解 MySQL 底层实现
参考文档:https://blog.csdn.net/gitchat/article/details/78787837转载 2018-05-28 10:19:54 · 901 阅读 · 1 评论