
MySQL
MySQL
Mreden
个人随身所记,希望可以帮到大家....
展开
-
mysql schema设计规范
1.尽量避免过度设计;2.使用小而简单的合适数据类型,除非真的需要,否则应尽可能避免使用 NULL;3.尽量使用相同的数据类型存储相似或相关的值,尤其是要在关联条件中使用的列;4.注意可变长字符串,其在临时表和排序时可能导致悲观的按最大长度分配内存;5.尽量使用整型定义标识列;6.避免使用 MySQL 已经遗弃的特性,例如指定浮点数的精度,或者整型的显示宽度;7.小心使用 ENUM 和 SET;8.最好避免使用 BIT。...原创 2020-12-26 17:41:38 · 351 阅读 · 0 评论 -
MySQL常见的三种锁以及特性
打卡(2020-05-07)锁问题的由来锁是计算机协调多个线程并发访问某一资源的机制,在数据库中除了io,cpu的抢用以外,数据也是一种允许供许多个用户共享的资源。如何保证并发的一致性,有效性是数据必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。常见的三种锁,锁的特性如下表级锁:开销小,加锁快;不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。页面锁:开...原创 2020-05-07 23:39:02 · 1892 阅读 · 0 评论 -
MySQL优化表的数据类型
打卡(2020-05-05)优化表的数据类型我们知道表的字段使用何种数据类型需要根据应用使用的场景来进行判断,表的字段设计可以留出一点冗余,但是不应该冗余过程,过长就会太浪费表的空间。 // 查出指定需要优化的列 select * from tbl_name PROCEDURE ANALYZE();; // 查看表的数据结构 desc tbl_name...原创 2020-05-05 22:16:56 · 422 阅读 · 1 评论 -
MySQL巧用RAND()提取随机行
打卡(2020-05-05)巧用RAND()提取随机行 // 随机排序 然后取出6条数据 select * from category order by rand() limit 6;寄语:望着青灯古佛的夜晚,在想你面庞的夜晚!...原创 2020-05-05 22:16:15 · 584 阅读 · 0 评论 -
MySQL常见的正则表达式的使用
打卡(2020-05-04)MySQL常见的正则表达式的使用1.^在字符串的开始处进行匹配,返回1表示匹配成功,返回0表示不匹配。 select 'abcdefg' regexp '^a'; // 这个是返回值是1因为这个是从开始处匹配的。$在字符的末尾处进行匹配,返回1表示匹配成功,返回0表示不匹配。 select 'abcdefg' regexp 'g$';...原创 2020-05-04 00:17:55 · 287 阅读 · 0 评论 -
MySQL使用SQL提示优化
打卡(2020-05-03)使用SQL提示常见的一些sql提示use index在查询中表名的后面,添加use index来提供希望MySQL去参考的索引列表,就可以让MySQL不在考虑其他可用的索引。 select count(*) from rental use index (idx_rental_date); // 这样就可以指定使用的索引2.ignore in...原创 2020-05-03 22:56:07 · 263 阅读 · 0 评论 -
MySQL如何优化分页查询
打卡(2020-05-02)MySQL如何优化分页查询一般分页查询是创建覆盖索引能够比较好的提升性能。第一种优化思路在索引上完成分页操作,最后根据主键关联回原表查询所需要的其他列内容 // 未优化之前的sql,这个相当于是全表扫描 select film_id,description from film order by title limit 50,5; ...原创 2020-05-01 17:52:51 · 787 阅读 · 0 评论 -
MySQL如何优化or条件
打卡(2020-05-01) 陌生人的你为了将来的自己,是否还在努力!mysql如何去优化or条件对于含有or的查询子句,如果要利用索引则or之间的每个条件列都必须用到索引;如果没有我们就需要考虑增加索引。 // 查看索引的方式 show index form 表名;上面是一个简洁的优化方式,有更好的方式可以提出来...原创 2020-05-01 16:39:05 · 974 阅读 · 0 评论 -
MySQL优化GROUP BY语句
打卡(2020-04-29)优化GROUP BY语句 // group by 的使用 GROUP BY col1 col2,... // 如果查询group by但用户想要避免排序结果的消耗,可以指定order by null禁止排序 // `ORDER BY NULL` //禁止排序...原创 2020-04-29 21:53:37 · 216 阅读 · 0 评论 -
MySQL优化order by语句
打卡(2020-04-27)优化order by语句mysql的两种排序方式1.第一种就是通过有序索引顺序扫描直接返回数据,常见的是使用explain分析查询Extra显示Using index,这种情况不需要额外的排序,高效率。2.通过返回数据进行排序,通常是使用explain分析查询语句使用Extra表示FilesortFilesort只是表示排序名字,至于是怎么排序是在内存中排序...原创 2020-04-27 21:49:49 · 254 阅读 · 0 评论 -
MySQL常见的SQL的优化大批量插入数据
打卡(2020-04-26)1.大批量插入数据时候1.第一种 // 当我们使用load命令大量导入数据的时候,可以修改设置提高导入速度。 // 关闭 alter table 表名 DISABLE KEYS; // 开启 alter table 表名 ENABLE KEYS; // 解释:DISABLE KEYS和ENABLE KEYS用来打开或者...原创 2020-04-26 21:11:44 · 581 阅读 · 0 评论 -
MySQL索引匹配规则以及常见的两个简单实用的优化办法
打卡(2020-04-25)MySQL如何使用索引B-Tree注意的点b-trre不是binary tree 而是balance treeb-tree查询类型分为:匹配全值查询。匹配区间值查询。匹配最左前缀查询(这个是首要原则)。仅仅对索引进行查询这样的效率会更高。匹配列的前缀,仅仅使用索引中的第一列,包含索引第一列的开头一部分查找。能够实现索引匹配部分精确而其他部分进行范...原创 2020-04-25 22:23:48 · 395 阅读 · 0 评论 -
MySQL确定了SQL问题并采取相应的优化措施
打卡(2020-04-23)确定了问题并采取相应的优化措施一般的情况下采取的建立索引来解决检索问题B-Tree索引:使我们最常见的索引类型,大部分引擎都支持Hash索引:只有memory引擎上支持(主要是建立在Memory/Heap)R-Tree:空间索引 主要使用在地理位置使用Full-text:全文索引,myisam引擎使用索引MyISAM引擎InnoDB引擎M...原创 2020-04-23 20:59:15 · 159 阅读 · 0 评论 -
MySQL通过trace分析优化器如何选择执行计划
MySQL优化(2020-04-22)通过trace分析优化器如何选择执行计划mysql 5.6提供了对sql跟踪trace,我们可以通过trace查看可以清楚的知道优化器执行过程,从而知道优化器的行为,可以帮助我们理解优化。使用方式 // 首先得打开trace设置显示格式我json格式,以及设置trace最大的可以使用的大小,设置这个原因默认大小比较小,会显示不完整影响分析。 ...原创 2020-04-22 20:08:05 · 371 阅读 · 0 评论 -
MySQL通过show profile分析SQL
通过show profile 分析SQL // 我们可以使用命令检查是否支持show profile select @@have_profiling; // 返回 yes 或者 no // profiling 默认当前session是关闭的:0 关闭 1 开启 select @@profiling; //查询是否开启profiling ...原创 2020-04-21 19:42:20 · 261 阅读 · 0 评论 -
通过explain分析低效sql的执行计划
MySQL优化(2020-04-20)通过explain分析低效sql的执行计划表示列中文含义取值select_type表示的查询类型sumple(简单表,不使用表的链接查询和子查询) primary_key(主查询) union(union中后面的查询) subquery(子查询)table查询的表表名type查询的类型all(全表扫描)/ind...原创 2020-04-20 21:28:32 · 316 阅读 · 0 评论 -
远程连接mysql 授权方法教程
当我们在服务器上面安装了MySql的时候,于是可以用phpadmin来登录管理。但是这个始终是不方便,比较希望可以在本地用数据库管理工具来管理,于是就想在本地登录连接到服务器的数据库了。第一次连接的时候就会发生远程连接MYSQL提示Host ‘192.168.0.34’ is not allowed to connect to this MySQL server因为是提示不能远程连转载 2016-07-19 13:20:38 · 13450 阅读 · 0 评论 -
MySql性能优化一
建立适合的索引,说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行个正确的'create index',查询速度就可能提高百倍千倍,这可真有诱惑力。可是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的I/O。是不是建立一个索引就能解决所有的问题?ename上没有建立索引会怎样?UPDATE emp转载 2017-02-24 13:57:24 · 11475 阅读 · 0 评论 -
Mysql性能优化二
(分表、增量备份、还原)对表进行水平划分如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了。如果我拆成100个表,那么每个表只有10万条记录。当然这需要数据在逻辑上可以划分。一个好的划分依据,有利于程序的简单实现,也可以充分利用水平分表的优势。比如系统界面上只提供按月查询的功能,那么把表按月拆分成12个,每个查询只查询一个表就够了。如果转载 2017-02-24 14:00:30 · 11835 阅读 · 0 评论 -
数据库访问性能优化
转:https://www.cnblogs.com/easypass/archive/2010/12/08/1900127.html特别说明:1、本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于...转载 2019-03-21 09:07:28 · 2023 阅读 · 0 评论 -
mysql分组查询最新数据
select user_id,sbp,dbp,pulse from p_bp as a, (select max(id) as id, max(measure_at) as measure_at from p_bp as b group by user_id ) as b where a.id=b.id and a.measure_at = b.measure_at;select id,max原创 2016-06-28 16:42:09 · 19096 阅读 · 0 评论