MySQL从基础到优化
1-4节是mysql基础部分
5-9节是mysql优化部分
Inspiration666
关注“程序艺术室”回复“C++精讲”获取视频教程!专注后端、算法、多线程!
展开
-
9_MySQL锁机制
一、锁的分类 1.从对数据操作的粒度可分为:表锁、行锁 2.从对数据操作的类型(读\写)分 1)读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响 2)写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁 3.三锁 开销、加锁速度、死锁、粒度、并发性能只能就具体应用的特点来说哪种锁更合适 1)表锁(偏读) 特点:偏向MyISAM存储引擎,开销小,加锁快,无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低 案例分析: -- 建表SQL use sqlopt; create tab原创 2020-06-14 17:01:11 · 101 阅读 · 0 评论 -
8_查询截取分析
-- ================================查询优化================================ -- 1.explain -- --------分析--------- -- 1.观察,至少跑1天,看看生产情况的慢SQL情况 -- 2.开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,并将它抓取出来 -- 3.explain+慢SQL分析 -- 4.show profile -- 5.y运维经理 or DBA,惊醒SQL数据库的参数调优 -- 小结:原创 2020-06-14 15:21:25 · 134 阅读 · 0 评论 -
7_索引面试题分析
create table test03( id int primary key not null auto_increment, c1 char(10), c2 char(10), c3 char(10), c4 char(10), c5 char(10) ); insert into test03(c1,c2,c3,c4,c5) values('a1','a2','a3','a4','a5'); insert into test03(c1,c2,c3,c4,c5) values('b1','b原创 2020-06-14 15:19:33 · 122 阅读 · 0 评论 -
6_索引失效
-- ==================================== create table staffs( id int primary key auto_increment, name varchar(24) not null default '' comment '姓名', age int not null default 0 comment '年龄', pos varchar(20) not null default '' comment '职位', add_time time原创 2020-06-14 15:18:54 · 196 阅读 · 0 评论 -
5_MySQl优化
-- ==================================================单表======================================================== create database sqlopt; use sqlopt; create table article( id int(10) unsigned not null primary key auto_increment, author_id int(10) unsigned原创 2020-06-14 15:18:10 · 117 阅读 · 0 评论 -
4_MySQL基础之常用函数
-- 测试字符串函数 -- CHAR_LENGTH():得到字符串的字符数 SELECT CHAR_LENGTH('abc'); -- LENGTH():返回字符串的长度 SELECT LENGTH('abc'); -- CONCAT(s1,s2,s3):将字符串合并成一个字符串 SELECT CONCAT('a','b','c'); -- 如果字符串中包含NULL,返回拼接结果就是NULL SELECT CONCAT('a','b','c',NULL); -- CONCAT_WS(x,s1,s2,原创 2020-06-14 15:17:28 · 133 阅读 · 0 评论 -
3_MySQL基础之数据管理
-- 测试添加记录 CREATE DATABASE IF NOT EXISTS king DEFAULT CHARACTER SET 'UTF8'; USE king; CREATE TABLE IF NOT EXISTS user( id INT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号', username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名', age TINYINT UNSIGNED DEFAULT 18 CO原创 2020-06-14 15:16:44 · 139 阅读 · 0 评论 -
2_MySQL基础之表的管理
-- 测试添加和删除字段 CREATE TABLE user1( id INT UNSIGNED AUTO_INCREMENT KEY ); -- 添加用户名字段 username VARCHAR(20) ALTER TABLE user1 ADD username VARCHAR(20); -- 添加密码字段 password CHAR(32) NOT NULL ALTER TABLE user1 ADD password CHAR(32) NOT NULL; -- 添加邮箱字段email V原创 2020-06-14 15:16:00 · 94 阅读 · 0 评论 -
1_MySQL基础之数据类型
-- 1***************************************************************************************************** -- 创建慕课网数据库 imooc CREATE DATABASE IF NOT EXISTS imooc DEFAULT CHARACTER SET 'UTF8'; -- 打开数据库 USE imooc; -- 用户表 user CREATE TABLE IF NOT EXISTS imooc_原创 2020-06-14 15:15:09 · 131 阅读 · 0 评论