高久峰
乘风行,无惧
PHP面试指南2020-MySQL事务-详解
什么是事务事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。事务的特性(ACID)原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起
2021-03-05
2171次浏览
分类:MySQL
阅读更多
PHP面试指南2020-MySQL锁-详解
用途多个查询需要在同一时刻修改数据,会产生并发控制的问题。使用锁可以有效解决这个问题锁的分类按照锁的粒度划分:行锁、表锁、页锁按照锁的使用方式划分:共享锁、排它锁(悲观锁的一种实现)还有两种思想上的锁:悲观锁、乐观锁InnoDB中有几种行级锁类型:Record Lock(在索引记录上加锁)、Gap Lock(间隙锁)、Next-key Lock(临键锁)行锁行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。**行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销
2021-03-05
2158次浏览
分类:MySQL
阅读更多
PHP面试指南2020-MySQL查询优化-详解
SQL通用优化方案:1. 使用参数化查询:防止SQL注入,预编译SQL命令提高效率2. 去掉不必要的查询和搜索字段:其实在项目的实际应用中,很多查询条件是可有可无的,能从源头上避免的多余功能尽量砍掉,这是最简单粗暴的解决方案。3. 选择最有效率的表名顺序: 数据库的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表放在最后,如果有3个以上的表连接查询,那就需要选择那个被其他表所引用的表放在最后。
2021-03-05
1074次浏览
分类:MySQL
阅读更多
PHP面试指南2020-MySQL高性能优化规范
数据库命令规范• 所有数据库对象名称必须使用小写字母并用下划线分割• 所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)• 数据库对象的命名要能做到见名识意,并且最后不要超过 32 个字符• 临时库表必须以 tmp_为前缀并以日期为后缀,备份表必须以 bak_为前缀并以日期 (时间戳) 为后缀• 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低
2021-03-05
831次浏览
分类:MySQL
阅读更多
PHP面试指南2020-MySQL常见问题
索引相关1. 什么是索引?索引是一种数据结构,可以帮助我们快速的进行数据的查找.2. 索引是个什么样的数据结构呢?索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引.3. Hash索引和B+树所有有什么区别或者说优劣呢?首先要知道Hash索引和B+树索引的底层实现原理:hash索引底层就是hash表,进行查找时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据
2021-03-05
854次浏览
分类:MySQL
阅读更多
mysql in 子查询中group by数据不准确记录
(1).查询出现问题的sql:SELECT * FROM hqjf_express_trace_items WHERE trace_id in( SELECT trace_id FROM hqjf_express_trace WHERE (STATUS = 1 OR receipt_time > 0 )&nbs
2021-02-24
1029次浏览
分类:MySQL
阅读更多
mysql批量修改存储引擎和字符集
生成sql格式(将qdm723412313_db改为你的数据库名称即可):SELECT concat( 'alter table ', table_name, ' engine=InnoDB CHARSET=utf8mb4; ' ) FROM information_schema.TABLES t WHERE table_sc
2021-01-18
964次浏览
分类:MySQL
阅读更多
mysql leftjoin 右表过滤数据
当我进行left join查询时需要关联的右表需要过滤数据,我们不能再全局的where加条件,因为会影响最终结果,只需要再on后面加上and条件即可,例如SELECT a.id, a.NAME, a.CODE, ifnull( b.id, 0 ) bid FROM `think_course` `a` LEFT JOIN `think_user_collect_course` `
2020-12-27
1765次浏览
分类:MySQL
阅读更多
mysql 替换字段中的部分字符,mysql替换字符串,mysql 替换字段内容,mysql replace
因为博客的文章内容每次提交都多带了一个段落换行,个人坏习惯问题,也没有时间去改代码,用mysql批量替换下。替换语法:UPDATE 表名 SET 字段名=replace(字段名, '被替换字符串', '用来替换的字符串') ;我需要将zbp_post表中的文章内容中的<p><br/></p>这种空段落批量替换为空,SQL语句如下:UPDATE zbp_post
2020-12-05
883次浏览
分类:MySQL
阅读更多
mysql获取随机数,mysql获取指定范围随机数
参考公式:FLOOR(start_num + RAND() * (end_num - start_num + 1));start_num为最小数,end_num为最大数,例如获取10-100范围的随机数SELECT FLOOR(10 + RAND() * (100 - 10 + 1));来批量更新下z-blog文章的
2020-10-11
1290次浏览
分类:MySQL
阅读更多
‹‹
上一页
2
3
4
5
6
下一页
››
Top
首页
留言板
友链申请
在线工具
后台登陆
×
×