MySql
不慕y
有希望的地方,痛苦也快乐。
展开
-
Mysql慢查询日志操作
一、开启慢查询命令(mysql下):默认的show variables like ‘%$low_query_log%’;关闭的通过set global slow_query_log=1;开启慢查询永久生效修改my.cnf配置文件查看查询忍耐最大阈值,默认10sShow global variables like ‘%$long_query_time%’;设置命令(需...原创 2020-02-12 14:17:07 · 368 阅读 · 0 评论 -
数据库优化(由浅到深)
数据库优化这块,先遵守基本原则一、表的设计:采用三泛式和反三范式原则,在有些经常查询的表可以适当设置冗余字段,因为这样能减少关联外表查询,可以提高查询效率,根据业务不同设计表的引擎类型也不同,经常查询居多的可以设计成Myisamy不支持事务的引擎Myism引擎表,经常修改居多的可以设计成支持事务的引擎innodb表,根据唯一性很强的字段设定索引,设置索引适用于经常不频繁修改的字段;二、变多...原创 2018-11-30 14:31:55 · 429 阅读 · 0 评论 -
数据库如何锁定一行
一、锁定单行数据执行命令为:beginàselect *from user where id=2 for update;àcommit;二、通过show status like ‘%innodb_row_lock%’;分析系统上行锁的争夺情况参数01:innodb_row_lock_current_waits当前正在等待锁定的数量参数02:innodb_row_lock_...原创 2020-02-12 14:13:05 · 1184 阅读 · 0 评论 -
Mysql锁机制简单认识和实际验证
一、锁的概念锁是计算机协调多个进程或线程并发访问某一种资源的控制机制二、读锁(共享锁)和写锁(排它锁)读锁是针对同一资源数据,多个读操作之间互不影响写锁当一个写操作未完成之前,会阻断其他写锁和读锁三、三锁表锁(偏读)特点:偏myisam存储引擎,开销小,加索快,无死锁,锁粒度大,锁发生冲突概率低,并发低。行锁(偏写)特点:偏innodb存储引擎,开销大,加索慢,...原创 2020-02-12 14:10:14 · 333 阅读 · 0 评论 -
Mysql的Filesort的两种算法
一、双路排序 Mysql4.1之前是双路排序,意思是扫描2次磁盘才能真正获取数据,读取行指针和order by上的字段,对该字段下数据进行排序,然后扫描已经排好的列表字段下数据,按照列表中值重新从列表读取对应的数据输出。从磁盘取排序字段,在buffer进行排序,再从磁盘读取其他字段。二、单路排序 从磁盘读取要查询的所有列,根据orderby在buffer进行排序,然后扫...原创 2020-02-12 14:05:54 · 359 阅读 · 0 评论 -
explain分析哪些危险sql操作
一、没有索引的情况EXPLAIN SELECT * from article where cid=60 and state=1 ORDER BY pageView desc limit 1;解释:using filesort是mysql对数据使用一个外部的索引排序,不是按照表内索引顺序读取,mysql中无法利用索引完成的排序操作叫文件排序(言外之意:没有按照内部规则执行,mysql另起...原创 2020-02-12 14:03:00 · 502 阅读 · 0 评论 -
sql性能分析之explain详解
一、介绍explain可以分析一条sql的优劣,通过mysql反馈我们,需要我们自己去读懂explain的sql执行结果来判断是否要进行优化,根据不同的业务和操作的数据量大小优化。二、使用explainmysql下执行:explain sql语句,比如 explain select t2.* from table2 t2;返回结果显示三、explain执行结果字段分析说明...原创 2020-02-12 13:59:40 · 20069 阅读 · 0 评论 -
数据库sql之order by优化
建立复合索引(age,birth),使用order by排序产生filesort情况情况1:Select *from user where age>20 order by age;没有filesort,用到了index索引,原因是age是索引头情况2:Select *from user where age>20 order by age, birth;没有filesort且用到...原创 2020-02-12 13:33:28 · 652 阅读 · 0 评论 -
数据库表的优化
一、两表优化两表建立左右连接要考虑性能问题,建索引记住左连接时mysql先考虑如何右表搜索行,右连接同理,规律是:左表连右表,右表建索引,右表连左表,左表建索引二、三表优化采用左关联两张表时,要在主表对应的外表字段建立索引比如 select * from user lefit join order on user.cid=order.cid left join balance b ...原创 2020-02-12 13:28:33 · 905 阅读 · 0 评论 -
数据库使用索引不一定能提高查询性能
索引的认识索引有B-TREE、BIT、CLUSTER等类型。ORACLE使用了一个复杂的自平衡B-tree结构;通常来说,在表上建立恰当的索引,查询时会改进查询性能。但在进行插入、删除、修改时,同时会进行索引的修改,在性能上有一定的影响。有索引且查询条件能使用索引时,数据库会先度取索引,根据索引内容和查询条件,查询出ROWID,再根据ROWID取出需要的数据。由于索引内容通常比全表内容要少很多...原创 2018-12-08 01:19:17 · 3553 阅读 · 1 评论 -
事物的特性(ACID) 常用于面试问题
1、事物特性ACID1)原子性(Atomicity):操作过程不可分割,要么都成功,要么都失败2)一致性(Consistency):事物操作之后,操作前后数据不变;比如转账减少的跟增加的值不变3)隔离性(Isolation):多个事物之间的操作是分隔的,互不干扰如果有多个事务去操作同一个数据的时候,就会事务并发问题(双11在线抢购 秒杀);4)持久性(Durability):成...原创 2018-07-23 23:29:14 · 917 阅读 · 0 评论 -
Mysql事物
1、概念:一组连续的sql操作语句,要么都失败,要么都成功;一失败就回滚数据(不会提交数据库,回到操作之前状态);2、用处:保证数据的正确性和完整性; 比如a向b转账,a转了100,而b没收到,造成数据丢失;3、语法:start transaction; --开启事物insert 语句delete 语句update 语句select 语句commit; -- 默认提交,可以...原创 2018-07-23 23:27:12 · 151 阅读 · 0 评论