key_cache.result
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:7k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. drop table if exists t1, t2, t3;
  2. SET @save_key_buffer=@@key_buffer_size;
  3. SELECT @@key_buffer_size, @@small.key_buffer_size;
  4. @@key_buffer_size @@small.key_buffer_size
  5. 2097152 131072
  6. SET @@global.key_buffer_size=16*1024*1024;
  7. SET @@global.default.key_buffer_size=16*1024*1024;
  8. SET @@global.default.key_buffer_size=16*1024*1024;
  9. SET @@global.small.key_buffer_size=1*1024*1024;
  10. SET @@global.medium.key_buffer_size=4*1024*1024;
  11. SET @@global.medium.key_buffer_size=0;
  12. SET @@global.medium.key_buffer_size=0;
  13. SHOW VARIABLES like "key_buffer_size";
  14. Variable_name Value
  15. key_buffer_size 16777216
  16. SELECT @@key_buffer_size;
  17. @@key_buffer_size
  18. 16777216
  19. SELECT @@global.key_buffer_size;
  20. @@global.key_buffer_size
  21. 16777216
  22. SELECT @@global.default.key_buffer_size;
  23. @@global.default.key_buffer_size
  24. 16777216
  25. SELECT @@global.default.`key_buffer_size`;
  26. @@global.default.`key_buffer_size`
  27. 16777216
  28. SELECT @@global.`default`.`key_buffer_size`;
  29. @@global.`default`.`key_buffer_size`
  30. 16777216
  31. SELECT @@`default`.key_buffer_size;
  32. @@`default`.key_buffer_size
  33. 16777216
  34. SELECT @@small.key_buffer_size;
  35. @@small.key_buffer_size
  36. 1048576
  37. SELECT @@medium.key_buffer_size;
  38. @@medium.key_buffer_size
  39. 0
  40. SET @@global.key_buffer_size=@save_key_buffer;
  41. SELECT @@default.key_buffer_size;
  42. ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'default.key_buffer_size' at line 1
  43. SELECT @@skr.storage_engine="test";
  44. ERROR HY000: Variable 'storage_engine' is not a variable component (can't be used as XXXX.variable_name)
  45. select @@keycache1.key_cache_block_size;
  46. @@keycache1.key_cache_block_size
  47. 0
  48. select @@keycache1.key_buffer_size;
  49. @@keycache1.key_buffer_size
  50. 0
  51. set global keycache1.key_cache_block_size=2048;
  52. select @@keycache1.key_buffer_size;
  53. @@keycache1.key_buffer_size
  54. 0
  55. select @@keycache1.key_cache_block_size;
  56. @@keycache1.key_cache_block_size
  57. 2048
  58. set global keycache1.key_buffer_size=1*1024*1024;
  59. select @@keycache1.key_buffer_size;
  60. @@keycache1.key_buffer_size
  61. 1048576
  62. select @@keycache1.key_cache_block_size;
  63. @@keycache1.key_cache_block_size
  64. 2048
  65. set global keycache2.key_buffer_size=4*1024*1024;
  66. select @@keycache2.key_buffer_size;
  67. @@keycache2.key_buffer_size
  68. 4194304
  69. select @@keycache2.key_cache_block_size;
  70. @@keycache2.key_cache_block_size
  71. 1024
  72. set global keycache1.key_buffer_size=0;
  73. select @@keycache1.key_buffer_size;
  74. @@keycache1.key_buffer_size
  75. 0
  76. select @@keycache1.key_cache_block_size;
  77. @@keycache1.key_cache_block_size
  78. 2048
  79. select @@key_buffer_size;
  80. @@key_buffer_size
  81. 2097152
  82. select @@key_cache_block_size;
  83. @@key_cache_block_size
  84. 1024
  85. set global keycache1.key_buffer_size=1024*1024;
  86. create table t1 (p int primary key, a char(10)) delay_key_write=1;
  87. create table t2 (p int primary key, i int, a char(10), key k1(i), key k2(a));
  88. show status like 'key_blocks_used';
  89. Variable_name Value
  90. Key_blocks_used 0
  91. show status like 'key_blocks_unused';
  92. Variable_name Value
  93. Key_blocks_unused KEY_BLOCKS_UNUSED
  94. insert into t1 values (1, 'qqqq'), (11, 'yyyy');
  95. insert into t2 values (1, 1, 'qqqq'), (2, 1, 'pppp'),
  96. (3, 1, 'yyyy'), (4, 3, 'zzzz');
  97. select * from t1;
  98. p a
  99. 1 qqqq
  100. 11 yyyy
  101. select * from t2;
  102. p i a
  103. 1 1 qqqq
  104. 2 1 pppp
  105. 3 1 yyyy
  106. 4 3 zzzz
  107. update t1 set p=2 where p=1;
  108. update t2 set i=2 where i=1;
  109. show status like 'key_blocks_used';
  110. Variable_name Value
  111. Key_blocks_used 4
  112. show status like 'key_blocks_unused';
  113. Variable_name Value
  114. Key_blocks_unused KEY_BLOCKS_UNUSED
  115. cache index t1 key (`primary`) in keycache1;
  116. Table Op Msg_type Msg_text
  117. test.t1 assign_to_keycache status OK
  118. explain select p from t1;
  119. id select_type table type possible_keys key key_len ref rows Extra
  120. 1 SIMPLE t1 index NULL PRIMARY 4 NULL 2 Using index
  121. select p from t1;
  122. p
  123. 2
  124. 11
  125. explain select i from t2;
  126. id select_type table type possible_keys key key_len ref rows Extra
  127. 1 SIMPLE t2 index NULL k1 5 NULL 4 Using index
  128. select i from t2;
  129. i
  130. 2
  131. 2
  132. 2
  133. 3
  134. explain select count(*) from t1, t2 where t1.p = t2.i;
  135. id select_type table type possible_keys key key_len ref rows Extra
  136. 1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
  137. 1 SIMPLE t2 ref k1 k1 5 test.t1.p 2 Using where; Using index
  138. select count(*) from t1, t2 where t1.p = t2.i;
  139. count(*)
  140. 3
  141. cache index t2 in keycache1;
  142. Table Op Msg_type Msg_text
  143. test.t2 assign_to_keycache status OK
  144. update t2 set p=p+1000, i=2 where a='qqqq';
  145. cache index t2 in keycache2;
  146. Table Op Msg_type Msg_text
  147. test.t2 assign_to_keycache status OK
  148. insert into t2 values (2000, 3, 'yyyy');
  149. cache index t2 in keycache1;
  150. Table Op Msg_type Msg_text
  151. test.t2 assign_to_keycache status OK
  152. update t2 set p=3000 where a='zzzz';
  153. select * from t2;
  154. p i a
  155. 1001 2 qqqq
  156. 2 2 pppp
  157. 3 2 yyyy
  158. 3000 3 zzzz
  159. 2000 3 yyyy
  160. explain select p from t2;
  161. id select_type table type possible_keys key key_len ref rows Extra
  162. 1 SIMPLE t2 index NULL PRIMARY 4 NULL 5 Using index
  163. select p from t2;
  164. p
  165. 2
  166. 3
  167. 1001
  168. 2000
  169. 3000
  170. explain select i from t2;
  171. id select_type table type possible_keys key key_len ref rows Extra
  172. 1 SIMPLE t2 index NULL k1 5 NULL 5 Using index
  173. select i from t2;
  174. i
  175. 2
  176. 2
  177. 2
  178. 3
  179. 3
  180. explain select a from t2;
  181. id select_type table type possible_keys key key_len ref rows Extra
  182. 1 SIMPLE t2 index NULL k2 11 NULL 5 Using index
  183. select a from t2;
  184. a
  185. pppp
  186. qqqq
  187. yyyy
  188. yyyy
  189. zzzz
  190. cache index t1 in unknown_key_cache;
  191. ERROR HY000: Unknown key cache 'unknown_key_cache'
  192. cache index t1 key (unknown_key) in keycache1;
  193. Table Op Msg_type Msg_text
  194. test.t1 assign_to_keycache error Key column 'unknown_key' doesn't exist in table
  195. test.t1 assign_to_keycache status Operation failed
  196. select @@keycache2.key_buffer_size;
  197. @@keycache2.key_buffer_size
  198. 4194304
  199. select @@keycache2.key_cache_block_size;
  200. @@keycache2.key_cache_block_size
  201. 1024
  202. set global keycache2.key_buffer_size=0;
  203. select @@keycache2.key_buffer_size;
  204. @@keycache2.key_buffer_size
  205. 0
  206. select @@keycache2.key_cache_block_size;
  207. @@keycache2.key_cache_block_size
  208. 1024
  209. set global keycache2.key_buffer_size=1024*1024;
  210. select @@keycache2.key_buffer_size;
  211. @@keycache2.key_buffer_size
  212. 1048576
  213. update t2 set p=4000 where a='zzzz';
  214. update t1 set p=p+1;
  215. set global keycache1.key_buffer_size=0;
  216. select * from t2;
  217. p i a
  218. 1001 2 qqqq
  219. 2 2 pppp
  220. 3 2 yyyy
  221. 4000 3 zzzz
  222. 2000 3 yyyy
  223. select p from t2;
  224. p
  225. 2
  226. 3
  227. 1001
  228. 2000
  229. 4000
  230. explain select i from t2;
  231. id select_type table type possible_keys key key_len ref rows Extra
  232. 1 SIMPLE t2 index NULL k1 5 NULL 5 Using index
  233. select i from t2;
  234. i
  235. 2
  236. 2
  237. 2
  238. 3
  239. 3
  240. explain select a from t2;
  241. id select_type table type possible_keys key key_len ref rows Extra
  242. 1 SIMPLE t2 index NULL k2 11 NULL 5 Using index
  243. select a from t2;
  244. a
  245. pppp
  246. qqqq
  247. yyyy
  248. yyyy
  249. zzzz
  250. select * from t1;
  251. p a
  252. 3 qqqq
  253. 12 yyyy
  254. select p from t1;
  255. p
  256. 3
  257. 12
  258. create table t3 (like t1);
  259. cache index t3 in small;
  260. Table Op Msg_type Msg_text
  261. test.t3 assign_to_keycache status OK
  262. insert into t3 select * from t1;
  263. cache index t3 in keycache2;
  264. Table Op Msg_type Msg_text
  265. test.t3 assign_to_keycache status OK
  266. cache index t1,t2 in default;
  267. Table Op Msg_type Msg_text
  268. test.t1 assign_to_keycache status OK
  269. test.t2 assign_to_keycache status OK
  270. drop table t1,t2,t3;
  271. show status like 'key_blocks_used';
  272. Variable_name Value
  273. Key_blocks_used 4
  274. show status like 'key_blocks_unused';
  275. Variable_name Value
  276. Key_blocks_unused KEY_BLOCKS_UNUSED
  277. set global keycache2.key_buffer_size=0;
  278. set global keycache3.key_buffer_size=100;
  279. set global keycache3.key_buffer_size=0;
  280. create table t1 (mytext text, FULLTEXT (mytext));
  281. insert t1 values ('aaabbb');
  282. check table t1;
  283. Table Op Msg_type Msg_text
  284. test.t1 check status OK
  285. set GLOBAL key_cache_block_size=2048;
  286. check table t1;
  287. Table Op Msg_type Msg_text
  288. test.t1 check status OK
  289. drop table t1;