数据库优化
网上参考方法如下:
- 一行数据使用 limit 1;
- 避免使用select *,应该使用具体字段
- 表连接join保证字段类型相同并且有其索引
- 对于取值有限而固定的使用enum类型(枚举),如性别 国家 名族 部门 状态
- delete和insert语句会锁表,所以可以采用分拆语句操作
- 选择正确的存储引擎;MyISAM适合大量查询 写操作多用InnoDB支持事务
- 每张表都是用id主键,并且是unsigned int
- explain select 语句可以知道性能
- 为搜索字段重建索引 比如关键字 标签
- 尽可能使用not null ip存储使用int(4),使用ip 转化函数ip2long()相互long2ip()
- 开启缓存,尽量使用php函数而不是mysql(不会php哈哈)
- 随机查询使用php $r = mysql_query("SELECT count(*) FROM user");
-
- $d = mysql_fetch_row($r);
- $rand = mt_rand(0,$d[0] - 1);
- $r = mysql_query("SELECT username FROM user LIMIT $rand, 1");
mysql调试方法(未验证)
在mysql提示符键入命令也可以,但不方便调试。
1、可以将以上命令原样写入一个文本文件中,假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后键入以下命令:
mysql -uroot -p密码 < c:\\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
2、或者进入命令行后使用 mysql> source c:\\school.sql; 也可以将school.sql文件导入数据库中。