mysql优化
索引的存储分类
MyISAM存储引擎的表的数据和索引时自动分开储存的。各自是一个独立的文件
Inodb 存储引擎的表的结构和索引都是存储在一个表的空间里。但可以有多个文件组成
mysql目前不支持函数索引
mysql如何使用索引
索引用于快速找出在某个列中有一特定值的行。对相关列使用索引时提供select操作性能的最佳途径
索引使用
使用like的查询 索引模糊尽量把 % 放到后面。
select *from t2 where name like “%aa”(用不到索引)
select *from t2 where name like “aa%” (使用索引)
使用and 或者or查询的时候。两端最好都加上索引字段
当该字段类型和该字段的值不匹配的时候,不适用索引
查看索引使用过的情况
show status like ‘handler_read%’
查看索引被读的次数
handler_read_end_next 数字越大。说明需要使用索引优化
优化group by语句
如果使用group by 但用户要避免排序结果的损耗,则可以使用order by null 来禁止排序
数据表的优化
检查数据表
check table tb_name
修复数据表(碎片整理)
optimize table tb_name
数据库的优化
1.优化表的类型
2.通过拆分提高表的访问效率
3.使用中间表提高统计查询速度
数据库服务器的优化
四种字符集尽量选用utf8
character-set-server=utf8
default-character-set=utf8
collation-server=utf_general_ci(字符集校验)
开启bin-log日志
my.cnf
log-bin =mysql-bin #开启mysql bin log日志
开启慢查询日志
show variables like “%slow%”
[mysqld]
log_slow_queries=slow.log
long_query_time = 2(慢查询的时间)
socket丢失的问题
socket=/tmp/mysql.sock
通过tcp 临时登录
mysql-uroot -proot --protocol tcp -hlocalhost
root 密码的破解
1.跳过授权表
mysqld_safe --skip-grant-tables --user=mysql &
2.使用没有密码的root登录
mysql -uroot
3.更改密码
update mysql.user set password=password(“new password”)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现