Heim > Datenbank > MySQL-Tutorial > Hauptteil

Mysql的一些常用方法_MySQL

WBOY
Freigeben: 2016-06-01 13:32:09
Original
916 Leute haben es durchsucht

bitsCN.com

公司近期为新来同事做了一次培训,我也偷偷溜进去观摩了一下,内容虽然很基础,但是还是挺有用的。这里做了一下资料汇总:

2种存储引擎

InnoDB:支持事务处理、外键、行级锁,游戏业务库使用MyISAM:不支持事务,写入速度快,游戏日志库使用

什么样的查询会用到索引

最左前缀原理(索引条件紧跟where)1.全列匹配,按照索引中所有列进行精确匹配(这里精确匹配指”=”或”IN”匹配)2.最左前缀匹配3.查询条件用到了索引中列的精确匹配,但是中间某个条件未提供:用到索引(只用到最左)4.使用like查询,%不能在第一位 ,如:s_rolename like ‘南博%’:使用索引s_rolename like ‘%南博’:不使用索引所以如果列要模糊查询,可在前面添个字段,如'0南博万'5.一次查询只会用到一个索引,查询时尽量遵循最左前缀原理如果有多个索引匹配,则默认优先按照索引建立顺序启用

什么样的查询不会用到索引

1.查询条件中不包含索引列2.索引列使用了函数或者表达式3.使用了like,%在最前面

查询原则

1.只取出自己需要的列select n_roleid,s_rolename from player_roles where n_roleid=1;这里n_roleid是传进去的,可以不放到查询结果中 2.关联查询时永远用小结果集驱动大结果集SELECT  pr.s_rolename,  t.*FROM (SELECT        n_roleid,        n_lv      FROM player_property pp      WHERE pp.n_lv >= 30) t  INNER JOIN player_roles prWHERE t.n_roleid = pr.n_roleid

存储过程

过程内的变量定义: DECLARE  p_count1 INTEGER(11) DEFAULT 0;SET @p_count2=0;DECLARE:局部变量,作用范围是声明该变量的BEGIN...END块 SET:会话内全局变量,作用范围是当前会话,可以在SQL、PROC、FUNC之间传递,使用不当可能会出BUG:比如2个过程都使用这个全局变量,则可能会出现变量被串用,因此在使用前建议初始化,SET @p_count2=0; 锁(SELECT … FOR UPDATE)行级锁  明确指定主键且有数据,无数据时没有锁  select n_money,n_token into … from acc_balance where n_roleid=1 for update表级锁  没有指定主键或者主键不明确  select * from acc_balance where n_roleid1 for update;

数据库操作

登录数据库mysql --default-character-set=utf8 -uroot -p'123' -h192.168.0.14 -P3300 king_db --default-character-set:设定client的字符编码-u:登录用户-p:密码-h:指定HOST-P:指定端口 导入数据库脚本mysql --default-character-set=utf8 -uroot -p'123' -h192.168.0.14 -P3300 king_dbsource 目录/脚本 导出数据库脚本(mysqldump)

常用参数名

描述

--no-create-db,-n

没有CREATE DATABASE...

--no-data,-d

只导结构,不导数据

--database,-B

有CREATE TABLE…

--no-create-info,-t

没有CREATE TABLE…

--tables

指定需要导出的表,覆盖--database或-B选

--ignore-table

指定不需要导出的表

每次只能指定一个表,多个表需要重复多次指定

每个表必须同时指定数据库和表名db.tablename

 示例-- 导出全库结构    mysqldump -uroot -p123 -h192.168.0.26 -P3301 -B --opt -R -d playboy_cn_cn_test > struct.sql-- 导入结构    mysql --default-character-set=utf8 -uroot -p123 -h127.0.0.1 -P3306 data.sql-- 导入数据    mysql --default-character-set=utf8 -uroot -p123 -h127.0.0.1 -P3306 playboy_cn_cn_test
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!