数据库调优及基础命令整理 本文共有2245个字,关键词: ``` 1. 垂直扩展:提高硬件的性能,加内存,因为数据库对内存的消耗很大 2. 线程的重用,将已完成任务的线程中断,用于新用户的响应 3. 使用缓存机制:redis等非关系型数据库,但是需要在php页面中指明先访问redis数据库 4. 对数据库进行主从复制,可以使用Amoeba实现读取压力分流 5. 分库、分表,使用连接将不同的库、表或索引放到不同的硬盘上,从I/O层面提升读写的效率 6. 使用固态SSD硬盘存取数据,从物理层面提升获取更高的效率 7. 给磁盘做RAID,提升读写的效率 8. 重新挂载文件系统,不记录文件访问时间,减少I/O的占用 9. 如果没有配置主从同步,可以关闭log-bin日志,减少磁盘I/O的占用 10. my.cnf中添加skip-name-resolve,这样可以避免由于解析主机名造成的延迟 11. 调整buffer、cache 12. 根据具体的使用场景,选择合适的存储引擎,常用的事务性存储引擎Innodb 13. 降低磁盘的写入操作,使用较大的写入缓存,inodb_log_file_size,推荐设置为0.25*innodb_buffer_pool_size 14. 单条查询后添加LIMIT1,停止全表扫描,减少磁盘的压力 15. 对常用来搜索的字段建立索引,提升查询的效率 16. 避免select * 操作,从数据库中读出的数据越多,查询就会变得越慢,如果数据库服务器和web服务器是两个独立的数据库的话,还会增加网络传输负载。 17. 应当为每张表设置一个ID作为主键,并设为AUTO_INCREMENT标志 18. 使用IP而不是域名作为数据库的路径,避免DNS解析,如果是多库,使用amoeba等中间件实现对库的调用 ``` 数据库的初始化: mysql_install_db 需要在安装路径下执行,有些命令是以相对路径执行的 修改密码: > set password=password('123456'); 创建登录的用户: > create user UserName@'%' identfied '123456'; root找回自己的密码并进行修改,跳过授权表,user表是授权表 ``` ~]# service mysqld stop ~]# echo "skip-grant-tables" >>/etc/my.conf #在配置文件末尾追加跳过授权表信息 ~]# service mysqld start ~]# mysql -uroot -p #以空密码登录数据库 > update mysql.user set password=password('123456') where user='root'; ``` mysql语句: > show databases; #显示授权给当前用户的数据库 > show tables; #显示当前数据库中有哪些表 > use DataBase_Name; #选择要操作的数据库 > create database DataBase_Name; #创建数据库 > drop database DataBase_Name; #删除数据库 > create table Table_Name(field1 Field_Type1,field2 Field_Type2...); #创建表 > drop table Table_Name; #删除当前或指定的表 > describe Table_Name; #显示当前数据库中指定表的结构(字段)信息 > alter table Old_Table_Name rename New_Table_Name; #修改数据表名称 > alter table Table_Name modify Field Field_Type; #修改字段类型 > alter table Table_Name change Old_Table_Name New_Table_Name Field_Type; #修改字段名、字段类型 > alter table Table_Name add Field Field_Type [first|after]; #增加字段,add以默认以追加的方式增加 > alter table Table_Name drop Field; #删除字段,删除一列,很危险的操作 > insert into Table_Name(Field1,Field2...) values('Values1','Values2'...); #向数据表中插入数据 > update Table_Name set Field=New_Values where 条件表达式;修改、更新数据表中的记录 > select Field1,Field2... from Table_Name where 条件表达式; #在数据库中查找符合条件的记录 between....and... #指定范围 > delete from Table_Name; #清空数据表,慎用 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 调优文档 2018-07-01 评论 2463 次浏览