msql 优化
发布日期:2021-07-21 06:32:00
浏览次数:2
分类:技术文章
本文共 1200 字,大约阅读时间需要 4 分钟。
- 如果多处使用了join ,那么join的这个字段要加索引,同时这个字段的数据类型一定要一致,不然索引无效。
- 如果是join,那么这关联表的字符集要一致。
- 千万不要用随机排序 ORDER BY RAND(),因为太耗CPU,如果不是实时的,可以每隔一段时间查好后放在一个临时表。
- 避免使用SELECT * ,这会增加网络传输的负载。
- 永远要为每个表设置一个主键ID,最好是INT的自动增长,varchar当主键会使得性能下降,,主键以后还可以用于集群,分表等。
- 枚举时,使用INT,而不是VARCHAR,可使用最小INT的TINYINT。比如性别 状态。
- 尽可能使用NOT NULL,除了特殊需求,字段应该保持NOT NULL。NULL也是需要额外空间的,并不是空。因为NULL “ ”,程序要判断。
- 固定长度的表会更快,因为固定长度容易计算下一个数据的偏移量,因为所有字段长度都一样,所以这一行的数据长度就一样,更容易定位指针(mysql 是C写的),读取时会更些,固定长度的表也容易缓存、重构。确定就是会浪费一些空间。如果表包含其中一个这些字段就不是固定长度静态表,VARCHAR,TEXT,BLOB(图片)。
- 图片不要存到数据库,图片转化为二进制,把二进制存到BLOB,当图片多,非常耗性能。
- 垂直分割,就是把数据库中的一个表,按列变成很多个表,可以降低表的复杂度和字段的数目,从而达到优化的目的。
- 拆分大的DELETE或INSERT,在执行一个大的DELETE或INSERT查询时,要非常小心,要避免操作 锁表。
- 越小的列会越快。比如如果不需要记录时间,就用DAATE,要比DATETIME更经济
- 选择正确的存储引擎,MYISAM适合需要大量查询的应用,但对写操作不友好,甚至一个update一个字段,整个表会被锁起来,别的进程就无法进行读写操作,另外,MyISAM 对SELECT COUNT(*)这类计算超快。 而InnoBD的趋势会是一个非常复杂的存储引擎,会比MyISAM慢,但它支持“行锁”,所以对写操作较多时会更好,同时支持更多高级应用,比如事务。
- 小心使用永久链接,就是程序使用长链接。,长链接好在可以不用总去创建新的链接,但是也会有风险就是链接数过大。
短链接的缺点:创建一个连接,程序执行完毕后,就会自动断掉与mysqlserver的链接。 会多少次这样的创建和释放过程。频繁地创建和释放连接,比较耗费cpu资源。长连接就可以避免每次请求都创建连接的开销,节省了时间和IO消耗。链接过大可以看这篇文章:
查看连接:
show processlist; 只展示100个连接
show full processlist; 展示所有连接
查看超时时间:
show variables like '%timeout%';闲置连接的超时时间由wait_timeout控制、默认8小时。
转载地址:https://blog.csdn.net/liuming690452074/article/details/103587326 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月04日 08时53分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
05 Python之条件与循环
2019-04-26
06 Python之函数调用与定义
2019-04-26
07 Python之Numpy库
2019-04-26
08 Python之Pandas库选择查看、选择
2019-04-26
09 Python之Pandas库之数据处理与规整
2019-04-26
10 Python之Matplotlib库
2019-04-26
11 Python总结之股票数据量化分析
2019-04-26
12 Python总结之蒙特卡洛模拟
2019-04-26
13 Python总结之估值
2019-04-26
14 Python总结之风险管理
2019-04-26
15 Python总结之数据分析与挖掘
2019-04-26
16 Python总结之舆情时间序列可视化
2019-04-26
数据结构和算法的知识图谱
2019-04-26
人工智能技术知识图谱
2019-04-26
机器学习算法之KNN
2019-04-26
实战六:手把手教你用TensorFlow进行手写数字识别
2019-04-26
实战七:手把手教你用TensorFlow进行验证码识别(上)
2019-04-26
机器学习算法之梯度下降法
2019-04-26
机器学习算法之多项式回归
2019-04-26
TensorFlow(keras)入门课程--01 机器学习的Hello World
2019-04-26