
Mysql
文章平均质量分 65
孙悟空2015
追根溯底,回归本质,挖掘兴趣,激发思考。
展开
-
MySQL之索引详解
索引的涉及原则索引的设计可以遵循一些已有的原则,创建索引的时候请尽量考虑符合这些原则,便于 提升索引的使用效率,更高效地使用索引。搜索的索引列,不一定是所要选择的列。换句话说,最适合索引的列是出现在 WHERE 子句中的列,或连接子句中指定的列,而不是出现在 SELECT 关键字后的选择列表中的列。 使用区分度高的字段当做索引,例如性别、状态等字段就不适合添加索引。使用短索引。如果对字符串列进行索引,应该指定一个前缀长度,只要有可能就应 该这样做。例如,如果有一个 name CHAR(200)列原创 2021-09-05 22:19:04 · 540 阅读 · 0 评论 -
MySQL之SQL语句执行过程
我们可能每天都或多或少的写一些SQL语句,但是你有没有思考过MySQL接收到SQL的执行命令之后底层是如何执行的呢,从这篇文章开始我们开始揭开MySQL底层执行过程的面纱。首选创建表create table user_info ( id int not null primary key, username varchar(16) not null, city varchar(16) not null, salary int not null default 0, createti原创 2021-08-23 22:48:02 · 2072 阅读 · 0 评论 -
Mysql知识点一网打尽——学习提纲
后面每一个模块我会出一篇文章进行详解,让我们一起学习共同进步。原创 2021-08-19 15:23:35 · 371 阅读 · 0 评论 -
深入浅出Mysql(四)
大批量插入数据优化 1、对应Myisam类型的表,可以通过以下方式快速的导入大量数据alter table tablname DISABLE KEYS;loading the data alter table tablname enable keys;这两个命令用来打开或者关闭Myisam表非唯一索引的更新。 2、对于InnoDB类型的表,这种方式并不能提高导入的效率,我们可以采取下面几种策原创 2015-09-18 17:29:47 · 802 阅读 · 0 评论 -
深入浅出Mysql(三)
索引的存储分类 Myisam的表数据文件和索引文件是自动分开存储的;InnoDB的数据和索引是存储在同一个表空间里面,但可以有多个文件组成。 创建索引语法:create [unique|fulltext|spatial] index index_name[using indext_type] on table_name (table_col_name,...)index_col_name:原创 2015-09-18 14:58:00 · 1640 阅读 · 0 评论 -
深入浅出Mysql(二)
通过Explain分析低效率sql的执行计划 用explain解释sql会有如下几列 select_type select类型 1、SIMPLE:简单的select语句,不包括union操作或子查询,例如: 2、PRIMARY/UNION PRIMARY:查询中最外层的select,如两表做union或者存在子查询的外层表的操作为PRIMARY,内层的操作为UNION,例如:原创 2015-09-18 11:15:55 · 2467 阅读 · 1 评论 -
深入浅出Mysql(一)
1、慢查询基础:优化数据访问 对于低效率查询,我们可以通过以下两个步骤来分析总是有效的: 1、确认应用程序是否在检索大量超过需要的数据。这通常意味着访问了太多的行,当时有时候也可能访问了太多的列 2、确认Mysql服务器层是否在分析大量超过需要的数据行 1.1 是否向数据库请求了不需要的数据 典型案例 查询不需要的记录 在查询时,Mysql会先返回全部结果集再进行计算,客户端应用程序会原创 2015-09-17 19:05:00 · 5707 阅读 · 0 评论 -
高性能Mysql——创建高性能的索引
一、索引基础select first_name from actor where id = 5;如果在id上建有索引,则Mysql将使用该索引找到id=5的列,也就是说Mysql先在索引上按值进行查找,然后返回符合条件的所有数据。 索引可以包含一个或者多个列的值。如果索引包含多个列,那么列的顺序也很重要,因为Mysql只能高效的使用索引的最左前缀列。 索引分类: 普通索引 唯一索引 主键原创 2015-09-16 18:07:54 · 1116 阅读 · 0 评论 -
Mysql循环游标并作为其中一个参数插入到另一个表中
-- 创建存储过程DDROP PROCEDURE IF exists init_budget_proc;CREATE PROCEDURE init_budget_proc()BEGIN DECLARE p_ou VARCHAR (64); -- 遍历数据结束标识 DECLARE done varchar(2); -- 创建游标 DECLARE ou_cur原创 2015-03-20 18:10:56 · 1894 阅读 · 0 评论 -
高性能Mysql——InnoDB与Myisam
MysqlInnoDB和Myisam两种类型的存储我们在Mysql创建表的时候可以在选项中进行制定,如下图所示: 下面来说说两种存储的区别吧: 1、两种数据存储的事务机制不同 InnoDB支持事务,Myisam不支持,但是在查询方面Myisam的性能略胜一筹 2、锁的机制不同 InnoDB为行级锁,能更大程度的支持并发操作;Myisam是表级锁 3、数据操作方面 修改、新增、删除数原创 2015-04-21 18:24:21 · 3188 阅读 · 0 评论 -
高性能Mysql——Mysql的整体架构简介
最近我觉得自己各项技能都是随着工作而学习的,感觉总有一些知识没有掌握,特准备在基于《Mysql权威指南》和《高性能Mysql》这两本书来系统学习下,把每次学习的笔记整理成博客的形式。一是为了加深自己的印象,二是为了给自己提供更好的学习能力,三是和大家共同分享。 1、逻辑架构 第一层:并不是Mysql独有,大多数基于网络客户端、服务器工具,例如:连接处理、授权认证、安全等 第二层:核心服务层原创 2015-04-26 01:18:38 · 1738 阅读 · 0 评论 -
高性能Mysql——Schema与数据类型优化
良好的逻辑设计和物理设计师高性能的基石 一、选择优化的数据类型 更小的通常更好 占用更小的磁盘、内存、CPU缓存和处理时需要的CPU周期 简单就好 操作需要更少的CPU周期,例如:整型比字符型操作代价更低,以为字符集和校对规则使字符比整型更复杂。应该使用Mysql内建的类型而不是字符串来存储日期和时间,另外一个是应该用整型存储IP地址。 尽量避免NULL 通常情况最好指定列为not n原创 2015-05-11 22:10:06 · 1421 阅读 · 0 评论 -
Mysql循环游标作为其中一个参数插入到另一个表
-- 创建存储过程DROP PROCEDURE IF exists init_budget_proc;CREATE PROCEDURE init_budget_proc()BEGIN DECLARE p_ou VARCHAR (64); -- 遍历数据结束标识 DECLARE done varchar(2); -- 创建游标 DECLARE ou_cur原创 2015-03-19 16:52:12 · 693 阅读 · 0 评论