mysql初级应用和个人经验

后台已经有好多烂尾文章了,决定整理先发一篇,有几个很水的就不发了…
——

mysql show processlist命令详解:
http://www.51testing.com/?110296/action_viewspace_itemid_69546.html
可以查看当前运行的mysql相关进程,比如insert阻塞了,可以这样查看出状态。

mysql分区分表相关资料:
http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#merge-%20storage-engine
http://blog.51yip.com/mysql/1013.html
http://blog.csdn.net/abandonship/article/details/8438243
对于大数据量的查询,分区和分表是很好的选择。
分区是由Mysql管理的,分表是人工管理的,理论上都是在磁盘上存多个文件表示抽象层面的一个表(一个很大的表)。
我做过的实验是按天进行分区,有一个day的列,然后通过hash分区,分区数是31,这样每个月都会分成31个区,每个区保存一天的数据。另外按月进行了分表,分表表名就设计为tablename_1304表示2013年4月的表。
有一个可能遇到的问题是分区函数的参数必须是主键 or unique的键,所以当时我的想法是把day和id都当主键,然后给id单独建索引。

分区后要测试一下是否成功,explain语句很起作用:
explain partitions select count(*) from tb where [partition_key] = [value];

清除mysql查询缓存:
reset query cache;
http://stackoverflow.com/questions/181894/mysql-force-not-to-use-cache-for-testing-speed-of-query
测试sql语句性能必备。

mysql日期时间函数:
http://www.cnblogs.com/she27/articles/1377089.html
工作中遇到时间戳的问题,北京差8个小时,项目涉及到日期一定要统一一下。

mysql limit用法:
http://www.phpweblog.net/peiyinjin/archive/2008/04/15/3199.html
分页设计必备,有索引很重要。

查看索引:
show index from table xxx;

Mysql性能优化实践:
http://coolshell.cn/articles/1846.html

清空一个表:
truncate table
http://database.51cto.com/art/201010/229086.htm

设置auto_increment初始值:
http://y150988451.iteye.com/blog/434346

sql_calc_rows分页使用:
同时计算总数目,相当于count(*)。
http://hi.baidu.com/thinkinginlamp/item/b122fdaea5ba23f614329b14

数据库备份和恢复:
导出的sql路径可以写成/tmp/out.sql,这样方便找到。
http://www.csdn.net/article/2011-01-17/290283

——
没啥用的东西 & 不相关的东西:

把unix时间戳转换成小时的函数
update table xxx set hour=hour(from_unixtime());

诡异的select 产生结果的顺序,可能与索引有关:
这个故事发生在我想把一整个表某一列的值都修改,我写的语句是:
update table xxx set a=xxx;
后来发现居然不是完全按表中数据的顺序update的,相比较的语句是:
update table xxx set a=xxx order by id;
另外就是如果我要把每行id都+5,是不能:
update table xxx set id=id+5 order by id;
因为主键会冲突,倒着就没事:
update table xxx set id=id+5 order by id desc;
我记起老师上课还讲过延迟判断unique属性的事情(有么?),可能会有效,没试过。

重启apache的操作备忘:
sudo service apache2 restart

同步到远端的语句
rsync -avzP [local path] [user]@[ip]:[path]
rsync核心算法:
http://coolshell.cn/articles/7425.html

Tags : , ,

2 thoughts on “mysql初级应用和个人经验”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Click the right image To submit your comment: