MySql
文章平均质量分 79
MySql
CodingAnHour
明日复明日,明日何其多。我生待明日,万事成蹉跎。
展开
-
mysql 性能优化(九)limit、 join(聚集索引、二级索引,辅助索引)、in、exsits、count优化策略
1、limit分页优化优化场景:当表数据非常大,百万、千万甚至更多,例如: select * from table limit 100000,10;随着limit的值越来越大,查询效率也越来越低。此sql结果是查询10条数据,实际上是从表中查询出100010条数据,之后抛弃前100000条数据,保留剩下的10条,所以查询分页越靠后的效率越低1.1、若表id是连续自增的分页优化如果表是中id是连续自增,没有间断的,可以直接用主键id当作查询条件select * from employees whe原创 2021-09-18 00:32:16 · 1135 阅读 · 0 评论 -
mysql 性能优化(八)主从复制
1、原理及配置集群在数据库中的一种实现docker 启动2个mysql 可以自行调整或者自行主机搭建mysqldocker run -p 33006:3306 --name mysql-master -v /Users/demo/tools/mysql-master/conf:/etc/mysql/conf.d -v /Users/demo/tools/mysql-master/logs:/logs -v /Users/demo/tools/mysql-master/data:/var/lib/my原创 2021-07-02 15:52:31 · 290 阅读 · 0 评论 -
mysql 性能优化(七)锁机制
解决因资源共享,而造成的并发问题。例如:例如:电商A,B两人同时购买最后一件商品A:仅快0.0001秒抢到的->加锁->处理业务逻辑->释放锁B:在B获取到商品时,商品已加锁,等待所释放,商品状态已发生改变,已售空。分类:操作类型:读锁(共享锁):对同一个数据,可以同时进行多个读操作,互不干扰写锁(互斥锁): 如果当前写操作没有完成(未释放锁),则无法进行其他的读操作和写操作操作范围:行锁表锁页锁...原创 2021-07-01 21:07:40 · 701 阅读 · 0 评论 -
mysql 性能优化(六)慢sql排查
1、慢查询日志慢查询日志:mysql提供的一种日志记录,用于记录mysql响应时间超过阀值的sql语句(long_query_time,默认10秒)默认关闭状态:建议开发调优时打开该日志,正式环境关闭该日志# 查询慢查询日志是否开启SHOW VARIABLES LIKE '%slow_query_log%'# 在内存中临时开启,重启mysql失效(常用)SET GLOBAL slow_query_log =1;# 永久修改# mysql配置文件# [mysqld]中新增# 开启慢查询原创 2021-06-29 21:49:34 · 730 阅读 · 1 评论 -
mysql 性能优化(五)避免索引失效原则及常见优化方法
sql优化是一种概率层面的优化,不是百分百的,至于是否使用了我们的优化,需要通过explain进行推测 因sql优化器可能会进行修改执行的sqlin可能导致失效不要在索引上进行任何操作(计算,函数,类型转换等 ),否则索引失效复合索引复合索引满足最佳左前缀,不要跨列和无序使用,如果左侧失效,则右侧全部失效。尽量使用全索引匹配例如x是一个表的索引 :select …where x*3 = 6;这样会导致索引失效不能使用!=、<>、 is null、is not null,否则原创 2021-06-22 15:34:04 · 1322 阅读 · 1 评论 -
mysql 性能优化(四)多表优化
两张表CREATE TABLE `teacher` ( `id` int(11) NOT NULL COMMENT '主键', `cid` int(11) NOT NULL COMMENT '课程id', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='老师表';CREATE TABLE `course` ( `id` int(11) NOT NULL COMMENT '主键', `name`原创 2021-06-20 11:38:24 · 251 阅读 · 0 评论 -
mysql 性能优化(三)单表优化示例
前期准备create table book( bid int (11) primary key, name varchar(20) not null, authorid int(11) not null, publicid int(11) not null, typeid int (11) not null);INSERT INTO bookVALUES ( 1, "数学", 1, 1, 1 ), ( 2, "语文", 1, 1, 2 ), ( 3, "英语", 1, 1原创 2021-06-20 10:35:09 · 193 阅读 · 0 评论 -
mysql 性能优化(二)执行计划explain
研究优化的前提是这一列有索引有时mysql查询优化器可能会干扰我们的优化explain:可以模拟sql优化器执行sql语句,让开发人员查看自己编写的sql状况1.表结构CREATE TABLE `course` ( `id` int(11) NOT NULL COMMENT '主键', `name` varchar(20) NOT NULL COMMENT '课程名称', `t_id` int(11) NOT NULL COMMENT '老师id', PRIMARY KEY (`id原创 2021-06-19 21:57:55 · 118 阅读 · 0 评论 -
mysql 性能优化(一)索引结构与原理、InnoDB、MyISAM索引实现
一、启动操作开机自动启动chkconfig mysql on关闭开机自动启动chkconfig mysql off检查开机自动启动ntsysv代表开机自动启动登陆操作mysql -u 用户名 -p 按提示输入密码二、mysql server服务层注意:有时导致我们查询的sql与预想结果不一致,其实就是服务增sql优化器对我们执行的sql进行了优化,例如:一个表组合索引 a b c 三个字段,组合索引需要满足最左原则,原创 2021-06-19 21:51:49 · 194 阅读 · 0 评论 -
java.sql.SQLException: Lock wait timeout exceeded; try restarting transactio
mysql查询 正在执行的事务:SELECT * FROM information_schema.INNODB_TRX根据这个事务的线程ID(trx_mysql_thread_id):可以直接 kill 例如 trx_mysql_thread_id= 19525kill 19525;问题解决查询线程及相关信息show processlist;可以查看到 正在执行的线程 例如19525...原创 2021-02-22 16:05:10 · 587 阅读 · 0 评论 -
MySql字段新增,修改字段长度,查询字段值的长度,常用搜索
添加字段alter table test_table add test_name varchar(36) DEFAULT NULL comment '名称'; 添加字段在某字段后面在text_id的后面``不是引号 是1旁边的按键alter table test_tableadd add test_name varchar(36) DEFAULT NULL comment '...原创 2016-10-28 15:58:32 · 2730 阅读 · 0 评论